arm-cpus.in revision 1.1.1.4 1 1.1 mrg # CPU, FPU and architecture specifications for ARM.
2 1.1 mrg #
3 1.1.1.4 mrg # Copyright (C) 2011-2020 Free Software Foundation, Inc.
4 1.1 mrg #
5 1.1 mrg # This file is part of GCC.
6 1.1 mrg #
7 1.1 mrg # GCC is free software; you can redistribute it and/or modify it under
8 1.1 mrg # the terms of the GNU General Public License as published by the Free
9 1.1 mrg # Software Foundation; either version 3, or (at your option) any later
10 1.1 mrg # version.
11 1.1 mrg #
12 1.1 mrg # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 1.1 mrg # WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 1.1 mrg # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 1.1 mrg # for more details.
16 1.1 mrg #
17 1.1 mrg # You should have received a copy of the GNU General Public License
18 1.1 mrg # along with GCC; see the file COPYING3. If not see
19 1.1 mrg # <http://www.gnu.org/licenses/>.
20 1.1 mrg
21 1.1 mrg # This file describes all the various CPUs, FPUs and architectures supported
22 1.1 mrg # by the compiler. It is pre-processed by parsecpu.awk for a number of
23 1.1 mrg # purposes.
24 1.1 mrg #
25 1.1 mrg # The general form is a sequence of begin..end blocks with the following
26 1.1 mrg # syntax:
27 1.1 mrg # begin <object-type> <name>
28 1.1 mrg # attribute-statement*
29 1.1 mrg # end <object-type> <name>
30 1.1 mrg #
31 1.1 mrg # where object type is one of "cpu" "arch" "fpu". Each object type has
32 1.1 mrg # a specific set of permitted attributes, some of which are optional; further
33 1.1 mrg # details can be found below.
34 1.1 mrg #
35 1.1 mrg # Some objects cross-reference other objects by name. Objects are permitted
36 1.1 mrg # in any order and it is not necessary to place a cross-referenced object
37 1.1 mrg # earlier in the file.
38 1.1 mrg #
39 1.1 mrg # The object names for cpu, arch and fpu objects are used for the public option
40 1.1 mrg # names in the final compiler. The order within each group is preserved and
41 1.1 mrg # forms the order for the list within the compiler.
42 1.1 mrg
43 1.1.1.2 mrg # Most objects in this file support forward references. The major
44 1.1.1.2 mrg # exception is feature groups, which may only refer to previously
45 1.1.1.2 mrg # defined features or feature groups. This is done to avoid the risk
46 1.1.1.2 mrg # of feature groups recursively referencing each other and causing
47 1.1.1.2 mrg # the parser to hang.
48 1.1.1.2 mrg
49 1.1.1.2 mrg # Features - general convention: all lower case.
50 1.1.1.2 mrg
51 1.1.1.2 mrg # Architecture rel 4
52 1.1.1.2 mrg define feature armv4
53 1.1.1.2 mrg
54 1.1.1.2 mrg # Thumb aware.
55 1.1.1.2 mrg define feature thumb
56 1.1.1.2 mrg
57 1.1.1.3 mrg # Architecture rel 5t.
58 1.1.1.3 mrg define feature armv5t
59 1.1.1.3 mrg
60 1.1.1.3 mrg # Architecture rel 5te.
61 1.1.1.3 mrg define feature armv5te
62 1.1.1.2 mrg
63 1.1.1.2 mrg # XScale.
64 1.1.1.2 mrg define feature xscale
65 1.1.1.2 mrg
66 1.1.1.2 mrg # Architecture rel 6.
67 1.1.1.2 mrg define feature armv6
68 1.1.1.2 mrg
69 1.1.1.2 mrg # Architecture rel 6k.
70 1.1.1.2 mrg define feature armv6k
71 1.1.1.2 mrg
72 1.1.1.2 mrg # Thumb-2.
73 1.1.1.2 mrg define feature thumb2
74 1.1.1.2 mrg
75 1.1.1.2 mrg # Instructions not present in 'M' profile.
76 1.1.1.2 mrg define feature notm
77 1.1.1.2 mrg
78 1.1.1.2 mrg # Architecture uses be8 mode in big-endian.
79 1.1.1.2 mrg define feature be8
80 1.1.1.2 mrg
81 1.1.1.2 mrg # Thumb division instructions.
82 1.1.1.2 mrg define feature tdiv
83 1.1.1.2 mrg
84 1.1.1.2 mrg # Architecture rel 7e-m.
85 1.1.1.2 mrg define feature armv7em
86 1.1.1.2 mrg
87 1.1.1.2 mrg # Architecture rel 7.
88 1.1.1.2 mrg define feature armv7
89 1.1.1.2 mrg
90 1.1.1.2 mrg # MP extension to ArmV7-A
91 1.1.1.2 mrg define feature mp
92 1.1.1.2 mrg
93 1.1.1.2 mrg # SEC extension to ArmV7-A
94 1.1.1.2 mrg define feature sec
95 1.1.1.2 mrg
96 1.1.1.2 mrg # ARM division instructions.
97 1.1.1.2 mrg define feature adiv
98 1.1.1.2 mrg
99 1.1.1.2 mrg # Architecture rel 8.
100 1.1.1.2 mrg define feature armv8
101 1.1.1.2 mrg
102 1.1.1.2 mrg # ARMv8 CRC32 instructions.
103 1.1.1.2 mrg define feature crc32
104 1.1.1.2 mrg
105 1.1.1.2 mrg # XScale v2 (Wireless MMX).
106 1.1.1.2 mrg define feature iwmmxt
107 1.1.1.2 mrg
108 1.1.1.2 mrg # XScale Wireless MMX2.
109 1.1.1.2 mrg define feature iwmmxt2
110 1.1.1.2 mrg
111 1.1.1.2 mrg # Architecture rel 8.1.
112 1.1.1.2 mrg define feature armv8_1
113 1.1.1.2 mrg
114 1.1.1.2 mrg # Architecture rel 8.2.
115 1.1.1.2 mrg define feature armv8_2
116 1.1.1.2 mrg
117 1.1.1.2 mrg # Architecture rel 8.3.
118 1.1.1.2 mrg define feature armv8_3
119 1.1.1.2 mrg
120 1.1.1.2 mrg # Architecture rel 8.4.
121 1.1.1.2 mrg define feature armv8_4
122 1.1.1.2 mrg
123 1.1.1.3 mrg # Architecture rel 8.5.
124 1.1.1.3 mrg define feature armv8_5
125 1.1.1.3 mrg
126 1.1.1.4 mrg # Architecture rel 8.6.
127 1.1.1.4 mrg define feature armv8_6
128 1.1.1.4 mrg
129 1.1.1.2 mrg # M-Profile security extensions.
130 1.1.1.2 mrg define feature cmse
131 1.1.1.2 mrg
132 1.1.1.4 mrg # Architecture rel 8.1-M.
133 1.1.1.4 mrg define feature armv8_1m_main
134 1.1.1.4 mrg
135 1.1.1.2 mrg # Floating point and Neon extensions.
136 1.1.1.2 mrg # VFPv1 is not supported in GCC.
137 1.1.1.2 mrg
138 1.1.1.2 mrg # Vector floating point v2.
139 1.1.1.2 mrg define feature vfpv2
140 1.1.1.2 mrg
141 1.1.1.2 mrg # Vector floating point v3.
142 1.1.1.2 mrg define feature vfpv3
143 1.1.1.2 mrg
144 1.1.1.2 mrg # Vector floating point v4.
145 1.1.1.2 mrg define feature vfpv4
146 1.1.1.2 mrg
147 1.1.1.2 mrg # Floating point v5.
148 1.1.1.2 mrg define feature fpv5
149 1.1.1.2 mrg
150 1.1.1.2 mrg # ARMv7-A LPAE.
151 1.1.1.2 mrg define feature lpae
152 1.1.1.2 mrg
153 1.1.1.2 mrg # Advanced SIMD instructions.
154 1.1.1.2 mrg define feature neon
155 1.1.1.2 mrg
156 1.1.1.2 mrg # Conversions to/from fp16 (VFPv3 extension).
157 1.1.1.2 mrg define feature fp16conv
158 1.1.1.2 mrg
159 1.1.1.2 mrg # Double precision operations supported.
160 1.1.1.2 mrg define feature fp_dbl
161 1.1.1.2 mrg
162 1.1.1.2 mrg # 32 Double precision registers.
163 1.1.1.2 mrg define feature fp_d32
164 1.1.1.2 mrg
165 1.1.1.2 mrg # Crypto extension to ARMv8.
166 1.1.1.2 mrg define feature crypto
167 1.1.1.2 mrg
168 1.1.1.2 mrg # FP16 data processing (half-precision float).
169 1.1.1.2 mrg define feature fp16
170 1.1.1.2 mrg
171 1.1.1.2 mrg # Dot Product instructions extension to ARMv8.2-a.
172 1.1.1.2 mrg define feature dotprod
173 1.1.1.2 mrg
174 1.1.1.2 mrg # Half-precision floating-point instructions in ARMv8.4-A.
175 1.1.1.2 mrg define feature fp16fml
176 1.1.1.2 mrg
177 1.1.1.2 mrg # ISA Quirks (errata?). Don't forget to add this to the fgroup
178 1.1.1.2 mrg # ALL_QUIRKS below.
179 1.1.1.2 mrg
180 1.1.1.2 mrg # No volatile memory in IT blocks.
181 1.1.1.2 mrg define feature quirk_no_volatile_ce
182 1.1.1.2 mrg
183 1.1.1.2 mrg # Previously mis-identified by GCC.
184 1.1.1.2 mrg define feature quirk_armv6kz
185 1.1.1.2 mrg
186 1.1.1.2 mrg # Cortex-M3 LDRD quirk.
187 1.1.1.2 mrg define feature quirk_cm3_ldrd
188 1.1.1.2 mrg
189 1.1.1.4 mrg # v8-m/v8.1-m VLLDM errata.
190 1.1.1.4 mrg define feature quirk_vlldm
191 1.1.1.4 mrg
192 1.1.1.4 mrg # Don't use .cpu assembly directive
193 1.1.1.4 mrg define feature quirk_no_asmcpu
194 1.1.1.4 mrg
195 1.1.1.2 mrg # (Very) slow multiply operations. Should probably be a tuning bit.
196 1.1.1.2 mrg define feature smallmul
197 1.1.1.2 mrg
198 1.1.1.3 mrg # Speculation Barrier Instruction for v8-A architectures, added by
199 1.1.1.3 mrg # default to v8.5-A
200 1.1.1.3 mrg define feature sb
201 1.1.1.3 mrg
202 1.1.1.3 mrg # Execution and Data Prediction Restriction Instruction for
203 1.1.1.3 mrg # v8-A architectures, added by default from v8.5-A
204 1.1.1.3 mrg define feature predres
205 1.1.1.3 mrg
206 1.1.1.4 mrg # M-profile Vector Extension feature bits
207 1.1.1.4 mrg define feature mve
208 1.1.1.4 mrg define feature mve_float
209 1.1.1.4 mrg
210 1.1.1.4 mrg # 8-bit Integer Matrix Multiply extension. Optional from v8.2-A.
211 1.1.1.4 mrg define feature i8mm
212 1.1.1.4 mrg
213 1.1.1.4 mrg # Brain half-precision floating-point extension. Optional from v8.2-A.
214 1.1.1.4 mrg define feature bf16
215 1.1.1.4 mrg
216 1.1.1.4 mrg # Arm Custom Datapath Extension (CDE).
217 1.1.1.4 mrg define feature cdecp0
218 1.1.1.4 mrg define feature cdecp1
219 1.1.1.4 mrg define feature cdecp2
220 1.1.1.4 mrg define feature cdecp3
221 1.1.1.4 mrg define feature cdecp4
222 1.1.1.4 mrg define feature cdecp5
223 1.1.1.4 mrg define feature cdecp6
224 1.1.1.4 mrg define feature cdecp7
225 1.1.1.4 mrg
226 1.1.1.2 mrg # Feature groups. Conventionally all (or mostly) upper case.
227 1.1.1.2 mrg # ALL_FPU lists all the feature bits associated with the floating-point
228 1.1.1.2 mrg # unit; these will all be removed if the floating-point unit is disabled
229 1.1.1.2 mrg # (eg -mfloat-abi=soft). ALL_FPU_INTERNAL must ONLY contain features that
230 1.1.1.2 mrg # form part of a named -mfpu option; it is used to map the capabilities
231 1.1.1.2 mrg # back to a named FPU for the benefit of the assembler.
232 1.1.1.2 mrg #
233 1.1.1.2 mrg # ALL_SIMD_INTERNAL and ALL_SIMD are similarly defined to help with the
234 1.1.1.2 mrg # construction of ALL_FPU and ALL_FPU_INTERNAL; they describe the SIMD
235 1.1.1.2 mrg # extensions that are either part of a named FPU or optional extensions
236 1.1.1.2 mrg # respectively.
237 1.1.1.2 mrg
238 1.1.1.2 mrg
239 1.1.1.2 mrg # List of all cryptographic extensions to stripout if crypto is
240 1.1.1.2 mrg # disabled. Currently, that's trivial, but we define it anyway for
241 1.1.1.2 mrg # consistency with the SIMD and FP disable lists.
242 1.1.1.2 mrg define fgroup ALL_CRYPTO crypto
243 1.1.1.2 mrg
244 1.1.1.2 mrg # List of all SIMD bits to strip out if SIMD is disabled. This does
245 1.1.1.2 mrg # strip off 32 D-registers, but does not remove support for
246 1.1.1.2 mrg # double-precision FP.
247 1.1.1.2 mrg define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO
248 1.1.1.4 mrg define fgroup ALL_SIMD_EXTERNAL dotprod fp16fml i8mm
249 1.1.1.4 mrg define fgroup ALL_SIMD ALL_SIMD_INTERNAL ALL_SIMD_EXTERNAL
250 1.1.1.2 mrg
251 1.1.1.2 mrg # List of all FPU bits to strip out if -mfpu is used to override the
252 1.1.1.2 mrg # default. fp16 is deliberately missing from this list.
253 1.1.1.2 mrg define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL
254 1.1.1.2 mrg # Similarly, but including fp16 and other extensions that aren't part of
255 1.1.1.2 mrg # -mfpu support.
256 1.1.1.4 mrg define fgroup ALL_FPU_EXTERNAL fp16 bf16
257 1.1.1.4 mrg
258 1.1.1.4 mrg # Everything related to the FPU extensions (FP or SIMD).
259 1.1.1.4 mrg define fgroup ALL_FP ALL_FPU_EXTERNAL ALL_FPU_INTERNAL ALL_SIMD
260 1.1.1.2 mrg
261 1.1.1.4 mrg define fgroup ARMv4 armv4 notm
262 1.1.1.4 mrg define fgroup ARMv4t ARMv4 thumb
263 1.1.1.4 mrg define fgroup ARMv5t ARMv4t armv5t
264 1.1.1.4 mrg define fgroup ARMv5te ARMv5t armv5te
265 1.1.1.4 mrg define fgroup ARMv5tej ARMv5te
266 1.1.1.4 mrg define fgroup ARMv6 ARMv5te armv6 be8
267 1.1.1.4 mrg define fgroup ARMv6j ARMv6
268 1.1.1.4 mrg define fgroup ARMv6k ARMv6 armv6k
269 1.1.1.4 mrg define fgroup ARMv6z ARMv6
270 1.1.1.4 mrg define fgroup ARMv6kz ARMv6k quirk_armv6kz
271 1.1.1.4 mrg define fgroup ARMv6zk ARMv6k
272 1.1.1.4 mrg define fgroup ARMv6t2 ARMv6 thumb2
273 1.1.1.2 mrg # This is suspect. ARMv6-m doesn't really pull in any useful features
274 1.1.1.2 mrg # from ARMv5* or ARMv6.
275 1.1.1.4 mrg define fgroup ARMv6m armv4 thumb armv5t armv5te armv6 be8
276 1.1.1.2 mrg # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
277 1.1.1.2 mrg # integer SIMD instructions that are in ARMv6T2. */
278 1.1.1.2 mrg define fgroup ARMv7 ARMv6m thumb2 armv7
279 1.1.1.2 mrg
280 1.1.1.2 mrg define fgroup ARMv7a ARMv7 notm armv6k
281 1.1.1.2 mrg define fgroup ARMv7ve ARMv7a adiv tdiv lpae mp sec
282 1.1.1.2 mrg define fgroup ARMv7r ARMv7a tdiv
283 1.1.1.2 mrg define fgroup ARMv7m ARMv7 tdiv
284 1.1.1.2 mrg define fgroup ARMv7em ARMv7m armv7em
285 1.1.1.2 mrg define fgroup ARMv8a ARMv7ve armv8
286 1.1.1.2 mrg define fgroup ARMv8_1a ARMv8a crc32 armv8_1
287 1.1.1.2 mrg define fgroup ARMv8_2a ARMv8_1a armv8_2
288 1.1.1.2 mrg define fgroup ARMv8_3a ARMv8_2a armv8_3
289 1.1.1.2 mrg define fgroup ARMv8_4a ARMv8_3a armv8_4
290 1.1.1.3 mrg define fgroup ARMv8_5a ARMv8_4a armv8_5 sb predres
291 1.1.1.4 mrg define fgroup ARMv8_6a ARMv8_5a armv8_6
292 1.1.1.2 mrg define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
293 1.1.1.2 mrg define fgroup ARMv8m_main ARMv7m armv8 cmse
294 1.1.1.2 mrg define fgroup ARMv8r ARMv8a
295 1.1.1.4 mrg define fgroup ARMv8_1m_main ARMv8m_main armv8_1m_main
296 1.1.1.2 mrg
297 1.1.1.2 mrg # Useful combinations.
298 1.1.1.2 mrg define fgroup VFPv2 vfpv2
299 1.1.1.2 mrg define fgroup VFPv3 VFPv2 vfpv3
300 1.1.1.2 mrg define fgroup VFPv4 VFPv3 vfpv4 fp16conv
301 1.1.1.2 mrg define fgroup FPv5 VFPv4 fpv5
302 1.1.1.4 mrg define fgroup MVE mve armv7em
303 1.1.1.4 mrg define fgroup MVE_FP MVE FPv5 fp16 mve_float
304 1.1.1.2 mrg
305 1.1.1.2 mrg define fgroup FP_DBL fp_dbl
306 1.1.1.2 mrg define fgroup FP_D32 FP_DBL fp_d32
307 1.1.1.2 mrg define fgroup FP_ARMv8 FPv5 FP_D32
308 1.1.1.2 mrg define fgroup NEON FP_D32 neon
309 1.1.1.2 mrg define fgroup CRYPTO NEON crypto
310 1.1.1.2 mrg define fgroup DOTPROD NEON dotprod
311 1.1.1.2 mrg
312 1.1.1.4 mrg # Implied feature bits. These are for non-named features shared between fgroups.
313 1.1.1.4 mrg # Shared feature f belonging to fgroups A and B will be erroneously removed if:
314 1.1.1.4 mrg # A and B are enabled by default AND A is disabled by a removal flag.
315 1.1.1.4 mrg # To ensure that f is retained, we must add such bits to the ISA after
316 1.1.1.4 mrg # processing the removal flags. This is implemented by 'implied bits':
317 1.1.1.4 mrg # define implied <name> [<feature-or-fgroup>]+
318 1.1.1.4 mrg # This indicates that, if any of the listed features are enabled, or if any
319 1.1.1.4 mrg # member of a listed fgroup is enabled, then <name> will be implicitly enabled.
320 1.1.1.4 mrg
321 1.1.1.4 mrg # Enabled for all VFP, MVE and MVE with floating point extensions.
322 1.1.1.4 mrg define implied vfp_base MVE MVE_FP ALL_FP
323 1.1.1.4 mrg
324 1.1.1.2 mrg # List of all quirk bits to strip out when comparing CPU features with
325 1.1.1.2 mrg # architectures.
326 1.1.1.2 mrg # xscale isn't really a 'quirk', but it isn't an architecture either and we
327 1.1.1.2 mrg # need to ignore it for matching purposes.
328 1.1.1.4 mrg define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd quirk_vlldm xscale quirk_no_asmcpu
329 1.1.1.4 mrg
330 1.1.1.4 mrg define fgroup IGNORE_FOR_MULTILIB cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 cdecp6 cdecp7
331 1.1.1.2 mrg
332 1.1 mrg # Architecture entries
333 1.1 mrg # format:
334 1.1 mrg # begin arch <name>
335 1.1 mrg # tune for <cpu>
336 1.1 mrg # [tune flags <list>]
337 1.1 mrg # base <name>
338 1.1.1.2 mrg # [profile <A|R|M>]
339 1.1 mrg # isa <isa-flags-list>
340 1.1 mrg # end arch <name>
341 1.1 mrg #
342 1.1 mrg
343 1.1 mrg begin arch armv4
344 1.1 mrg tune for arm7tdmi
345 1.1 mrg tune flags CO_PROC
346 1.1 mrg base 4
347 1.1.1.3 mrg isa ARMv4
348 1.1 mrg end arch armv4
349 1.1 mrg
350 1.1 mrg begin arch armv4t
351 1.1 mrg tune for arm7tdmi
352 1.1 mrg tune flags CO_PROC
353 1.1 mrg base 4T
354 1.1 mrg isa ARMv4t
355 1.1 mrg end arch armv4t
356 1.1 mrg
357 1.1 mrg begin arch armv5t
358 1.1 mrg tune for arm10tdmi
359 1.1 mrg tune flags CO_PROC
360 1.1 mrg base 5T
361 1.1 mrg isa ARMv5t
362 1.1 mrg end arch armv5t
363 1.1 mrg
364 1.1 mrg begin arch armv5te
365 1.1 mrg tune for arm1026ej-s
366 1.1 mrg tune flags CO_PROC
367 1.1 mrg base 5TE
368 1.1 mrg isa ARMv5te
369 1.1.1.2 mrg option fp add VFPv2 FP_DBL
370 1.1.1.2 mrg optalias vfpv2 fp
371 1.1.1.2 mrg option nofp remove ALL_FP
372 1.1 mrg end arch armv5te
373 1.1 mrg
374 1.1 mrg begin arch armv5tej
375 1.1 mrg tune for arm1026ej-s
376 1.1 mrg tune flags CO_PROC
377 1.1 mrg base 5TEJ
378 1.1 mrg isa ARMv5tej
379 1.1.1.2 mrg option fp add VFPv2 FP_DBL
380 1.1.1.2 mrg optalias vfpv2 fp
381 1.1.1.2 mrg option nofp remove ALL_FP
382 1.1 mrg end arch armv5tej
383 1.1 mrg
384 1.1 mrg begin arch armv6
385 1.1 mrg tune for arm1136j-s
386 1.1 mrg tune flags CO_PROC
387 1.1 mrg base 6
388 1.1 mrg isa ARMv6
389 1.1.1.2 mrg option fp add VFPv2 FP_DBL
390 1.1.1.2 mrg optalias vfpv2 fp
391 1.1.1.2 mrg option nofp remove ALL_FP
392 1.1 mrg end arch armv6
393 1.1 mrg
394 1.1 mrg begin arch armv6j
395 1.1 mrg tune for arm1136j-s
396 1.1 mrg tune flags CO_PROC
397 1.1 mrg base 6J
398 1.1 mrg isa ARMv6j
399 1.1.1.2 mrg option fp add VFPv2 FP_DBL
400 1.1.1.2 mrg optalias vfpv2 fp
401 1.1.1.2 mrg option nofp remove ALL_FP
402 1.1 mrg end arch armv6j
403 1.1 mrg
404 1.1 mrg begin arch armv6k
405 1.1 mrg tune for mpcore
406 1.1 mrg tune flags CO_PROC
407 1.1 mrg base 6K
408 1.1 mrg isa ARMv6k
409 1.1.1.2 mrg option fp add VFPv2 FP_DBL
410 1.1.1.2 mrg optalias vfpv2 fp
411 1.1.1.2 mrg option nofp remove ALL_FP
412 1.1 mrg end arch armv6k
413 1.1 mrg
414 1.1 mrg begin arch armv6z
415 1.1 mrg tune for arm1176jz-s
416 1.1 mrg tune flags CO_PROC
417 1.1 mrg base 6Z
418 1.1 mrg isa ARMv6z
419 1.1.1.2 mrg option fp add VFPv2 FP_DBL
420 1.1.1.2 mrg optalias vfpv2 fp
421 1.1.1.2 mrg option nofp remove ALL_FP
422 1.1 mrg end arch armv6z
423 1.1 mrg
424 1.1 mrg begin arch armv6kz
425 1.1 mrg tune for arm1176jz-s
426 1.1 mrg tune flags CO_PROC
427 1.1 mrg base 6KZ
428 1.1 mrg isa ARMv6kz
429 1.1.1.2 mrg option fp add VFPv2 FP_DBL
430 1.1.1.2 mrg optalias vfpv2 fp
431 1.1.1.2 mrg option nofp remove ALL_FP
432 1.1 mrg end arch armv6kz
433 1.1 mrg
434 1.1 mrg begin arch armv6zk
435 1.1 mrg tune for arm1176jz-s
436 1.1 mrg tune flags CO_PROC
437 1.1 mrg base 6KZ
438 1.1 mrg isa ARMv6kz
439 1.1.1.2 mrg option fp add VFPv2 FP_DBL
440 1.1.1.2 mrg optalias vfpv2 fp
441 1.1.1.2 mrg option nofp remove ALL_FP
442 1.1 mrg end arch armv6zk
443 1.1 mrg
444 1.1 mrg begin arch armv6t2
445 1.1 mrg tune for arm1156t2-s
446 1.1 mrg tune flags CO_PROC
447 1.1 mrg base 6T2
448 1.1 mrg isa ARMv6t2
449 1.1.1.2 mrg option fp add VFPv2 FP_DBL
450 1.1.1.2 mrg optalias vfpv2 fp
451 1.1.1.2 mrg option nofp remove ALL_FP
452 1.1 mrg end arch armv6t2
453 1.1 mrg
454 1.1 mrg begin arch armv6-m
455 1.1 mrg tune for cortex-m1
456 1.1 mrg base 6M
457 1.1.1.2 mrg profile M
458 1.1 mrg isa ARMv6m
459 1.1 mrg end arch armv6-m
460 1.1 mrg
461 1.1.1.2 mrg # This is now equivalent to armv6-m, but we keep it because some
462 1.1.1.2 mrg # versions of GAS still distinguish between the two.
463 1.1 mrg begin arch armv6s-m
464 1.1 mrg tune for cortex-m1
465 1.1 mrg base 6M
466 1.1.1.2 mrg profile M
467 1.1 mrg isa ARMv6m
468 1.1 mrg end arch armv6s-m
469 1.1 mrg
470 1.1 mrg begin arch armv7
471 1.1.1.4 mrg tune for cortex-a53
472 1.1 mrg tune flags CO_PROC
473 1.1 mrg base 7
474 1.1 mrg isa ARMv7
475 1.1.1.2 mrg # fp => VFPv3-d16 (only useful for the A+R profile subset).
476 1.1.1.2 mrg option fp add VFPv3 FP_DBL
477 1.1.1.2 mrg optalias vfpv3-d16 fp
478 1.1.1.2 mrg option nofp remove ALL_FP
479 1.1 mrg end arch armv7
480 1.1 mrg
481 1.1 mrg begin arch armv7-a
482 1.1.1.4 mrg tune for cortex-a53
483 1.1 mrg tune flags CO_PROC
484 1.1 mrg base 7A
485 1.1.1.2 mrg profile A
486 1.1 mrg isa ARMv7a
487 1.1.1.2 mrg option mp add mp
488 1.1.1.2 mrg option sec add sec
489 1.1.1.2 mrg # fp => VFPv3-d16, simd => neon-vfpv3
490 1.1.1.2 mrg option fp add VFPv3 FP_DBL
491 1.1.1.2 mrg optalias vfpv3-d16 fp
492 1.1.1.2 mrg option vfpv3 add VFPv3 FP_D32
493 1.1.1.2 mrg option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
494 1.1.1.2 mrg option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
495 1.1.1.2 mrg option vfpv4-d16 add VFPv4 FP_DBL
496 1.1.1.2 mrg option vfpv4 add VFPv4 FP_D32
497 1.1.1.2 mrg option simd add VFPv3 NEON
498 1.1.1.2 mrg optalias neon simd
499 1.1.1.2 mrg optalias neon-vfpv3 simd
500 1.1.1.2 mrg option neon-fp16 add VFPv3 NEON fp16conv
501 1.1.1.2 mrg option neon-vfpv4 add VFPv4 NEON
502 1.1.1.2 mrg option nosimd remove ALL_SIMD
503 1.1.1.2 mrg option nofp remove ALL_FP
504 1.1 mrg end arch armv7-a
505 1.1 mrg
506 1.1 mrg begin arch armv7ve
507 1.1.1.4 mrg tune for cortex-a53
508 1.1 mrg tune flags CO_PROC
509 1.1 mrg base 7A
510 1.1.1.2 mrg profile A
511 1.1 mrg isa ARMv7ve
512 1.1.1.2 mrg # fp => VFPv4-d16, simd => neon-vfpv4
513 1.1.1.2 mrg option vfpv3-d16 add VFPv3 FP_DBL
514 1.1.1.2 mrg option vfpv3 add VFPv3 FP_D32
515 1.1.1.2 mrg option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
516 1.1.1.2 mrg option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
517 1.1.1.2 mrg option fp add VFPv4 FP_DBL
518 1.1.1.2 mrg optalias vfpv4-d16 fp
519 1.1.1.2 mrg option vfpv4 add VFPv4 FP_D32
520 1.1.1.2 mrg option neon add VFPv3 NEON
521 1.1.1.2 mrg optalias neon-vfpv3 neon
522 1.1.1.2 mrg option neon-fp16 add VFPv3 NEON fp16conv
523 1.1.1.2 mrg option simd add VFPv4 NEON
524 1.1.1.2 mrg optalias neon-vfpv4 simd
525 1.1.1.2 mrg option nosimd remove ALL_SIMD
526 1.1.1.2 mrg option nofp remove ALL_FP
527 1.1 mrg end arch armv7ve
528 1.1 mrg
529 1.1 mrg begin arch armv7-r
530 1.1 mrg tune for cortex-r4
531 1.1 mrg tune flags CO_PROC
532 1.1 mrg base 7R
533 1.1.1.2 mrg profile R
534 1.1 mrg isa ARMv7r
535 1.1.1.2 mrg # ARMv7-r uses VFPv3-d16
536 1.1.1.2 mrg option fp.sp add VFPv3
537 1.1.1.2 mrg optalias vfpv3xd fp.sp
538 1.1.1.2 mrg option fp add VFPv3 FP_DBL
539 1.1.1.2 mrg optalias vfpv3-d16 fp
540 1.1.1.2 mrg option vfpv3xd-fp16 add VFPv3 fp16conv
541 1.1.1.2 mrg option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
542 1.1.1.2 mrg option idiv add adiv
543 1.1.1.2 mrg option nofp remove ALL_FP
544 1.1.1.2 mrg option noidiv remove adiv
545 1.1 mrg end arch armv7-r
546 1.1 mrg
547 1.1 mrg begin arch armv7-m
548 1.1 mrg tune for cortex-m3
549 1.1 mrg tune flags CO_PROC
550 1.1 mrg base 7M
551 1.1.1.2 mrg profile M
552 1.1 mrg isa ARMv7m
553 1.1.1.2 mrg # In theory FP is permitted in v7-m, but in practice no implementations exist.
554 1.1.1.2 mrg # leave it out for now.
555 1.1 mrg end arch armv7-m
556 1.1 mrg
557 1.1 mrg begin arch armv7e-m
558 1.1 mrg tune for cortex-m4
559 1.1 mrg tune flags CO_PROC
560 1.1 mrg base 7EM
561 1.1.1.2 mrg profile M
562 1.1 mrg isa ARMv7em
563 1.1.1.2 mrg # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
564 1.1.1.2 mrg option fp add VFPv4
565 1.1.1.2 mrg optalias vfpv4-sp-d16 fp
566 1.1.1.2 mrg option fpv5 add FPv5
567 1.1.1.2 mrg option fp.dp add FPv5 FP_DBL
568 1.1.1.2 mrg optalias fpv5-d16 fp.dp
569 1.1.1.2 mrg option nofp remove ALL_FP
570 1.1 mrg end arch armv7e-m
571 1.1 mrg
572 1.1 mrg begin arch armv8-a
573 1.1 mrg tune for cortex-a53
574 1.1 mrg tune flags CO_PROC
575 1.1 mrg base 8A
576 1.1.1.2 mrg profile A
577 1.1 mrg isa ARMv8a
578 1.1.1.2 mrg option crc add crc32
579 1.1.1.2 mrg option simd add FP_ARMv8 NEON
580 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
581 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
582 1.1.1.2 mrg option nofp remove ALL_FP
583 1.1.1.3 mrg option sb add sb
584 1.1.1.3 mrg option predres add predres
585 1.1 mrg end arch armv8-a
586 1.1 mrg
587 1.1 mrg begin arch armv8.1-a
588 1.1 mrg tune for cortex-a53
589 1.1 mrg tune flags CO_PROC
590 1.1 mrg base 8A
591 1.1.1.2 mrg profile A
592 1.1 mrg isa ARMv8_1a
593 1.1.1.2 mrg option simd add FP_ARMv8 NEON
594 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
595 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
596 1.1.1.2 mrg option nofp remove ALL_FP
597 1.1.1.3 mrg option sb add sb
598 1.1.1.3 mrg option predres add predres
599 1.1 mrg end arch armv8.1-a
600 1.1 mrg
601 1.1 mrg begin arch armv8.2-a
602 1.1 mrg tune for cortex-a53
603 1.1 mrg tune flags CO_PROC
604 1.1 mrg base 8A
605 1.1.1.2 mrg profile A
606 1.1 mrg isa ARMv8_2a
607 1.1.1.2 mrg option simd add FP_ARMv8 NEON
608 1.1.1.2 mrg option fp16 add fp16 FP_ARMv8 NEON
609 1.1.1.2 mrg option fp16fml add fp16fml fp16 FP_ARMv8 NEON
610 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
611 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
612 1.1.1.2 mrg option nofp remove ALL_FP
613 1.1.1.2 mrg option dotprod add FP_ARMv8 DOTPROD
614 1.1.1.3 mrg option sb add sb
615 1.1.1.3 mrg option predres add predres
616 1.1.1.4 mrg option i8mm add i8mm FP_ARMv8 NEON
617 1.1.1.4 mrg option bf16 add bf16 FP_ARMv8 NEON
618 1.1 mrg end arch armv8.2-a
619 1.1 mrg
620 1.1.1.2 mrg begin arch armv8.3-a
621 1.1.1.2 mrg tune for cortex-a53
622 1.1.1.2 mrg tune flags CO_PROC
623 1.1.1.2 mrg base 8A
624 1.1.1.2 mrg profile A
625 1.1.1.2 mrg isa ARMv8_3a
626 1.1.1.2 mrg option simd add FP_ARMv8 NEON
627 1.1.1.2 mrg option fp16 add fp16 FP_ARMv8 NEON
628 1.1.1.2 mrg option fp16fml add fp16fml fp16 FP_ARMv8 NEON
629 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
630 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
631 1.1.1.2 mrg option nofp remove ALL_FP
632 1.1.1.2 mrg option dotprod add FP_ARMv8 DOTPROD
633 1.1.1.3 mrg option sb add sb
634 1.1.1.3 mrg option predres add predres
635 1.1.1.4 mrg option i8mm add i8mm FP_ARMv8 NEON
636 1.1.1.4 mrg option bf16 add bf16 FP_ARMv8 NEON
637 1.1.1.2 mrg end arch armv8.3-a
638 1.1.1.2 mrg
639 1.1.1.2 mrg begin arch armv8.4-a
640 1.1 mrg tune for cortex-a53
641 1.1 mrg tune flags CO_PROC
642 1.1 mrg base 8A
643 1.1.1.2 mrg profile A
644 1.1.1.2 mrg isa ARMv8_4a
645 1.1.1.2 mrg option simd add FP_ARMv8 DOTPROD
646 1.1.1.2 mrg option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
647 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO DOTPROD
648 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
649 1.1.1.2 mrg option nofp remove ALL_FP
650 1.1.1.3 mrg option sb add sb
651 1.1.1.3 mrg option predres add predres
652 1.1.1.4 mrg option i8mm add i8mm FP_ARMv8 DOTPROD
653 1.1.1.4 mrg option bf16 add bf16 FP_ARMv8 DOTPROD
654 1.1.1.2 mrg end arch armv8.4-a
655 1.1 mrg
656 1.1.1.3 mrg begin arch armv8.5-a
657 1.1.1.3 mrg tune for cortex-a53
658 1.1.1.3 mrg tune flags CO_PROC
659 1.1.1.3 mrg base 8A
660 1.1.1.3 mrg profile A
661 1.1.1.3 mrg isa ARMv8_5a
662 1.1.1.3 mrg option simd add FP_ARMv8 DOTPROD
663 1.1.1.3 mrg option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
664 1.1.1.3 mrg option crypto add FP_ARMv8 CRYPTO DOTPROD
665 1.1.1.3 mrg option nocrypto remove ALL_CRYPTO
666 1.1.1.3 mrg option nofp remove ALL_FP
667 1.1.1.4 mrg option i8mm add i8mm FP_ARMv8 DOTPROD
668 1.1.1.4 mrg option bf16 add bf16 FP_ARMv8 DOTPROD
669 1.1.1.3 mrg end arch armv8.5-a
670 1.1.1.3 mrg
671 1.1.1.4 mrg begin arch armv8.6-a
672 1.1.1.4 mrg tune for cortex-a53
673 1.1.1.4 mrg tune flags CO_PROC
674 1.1.1.4 mrg base 8A
675 1.1.1.4 mrg profile A
676 1.1.1.4 mrg isa ARMv8_6a
677 1.1.1.4 mrg option simd add FP_ARMv8 DOTPROD
678 1.1.1.4 mrg option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
679 1.1.1.4 mrg option crypto add FP_ARMv8 CRYPTO DOTPROD
680 1.1.1.4 mrg option nocrypto remove ALL_CRYPTO
681 1.1.1.4 mrg option nofp remove ALL_FP
682 1.1.1.4 mrg option i8mm add i8mm FP_ARMv8 DOTPROD
683 1.1.1.4 mrg option bf16 add bf16 FP_ARMv8 DOTPROD
684 1.1.1.4 mrg end arch armv8.6-a
685 1.1.1.4 mrg
686 1.1 mrg begin arch armv8-m.base
687 1.1 mrg tune for cortex-m23
688 1.1 mrg base 8M_BASE
689 1.1.1.2 mrg profile M
690 1.1 mrg isa ARMv8m_base
691 1.1 mrg end arch armv8-m.base
692 1.1 mrg
693 1.1 mrg begin arch armv8-m.main
694 1.1 mrg tune for cortex-m7
695 1.1 mrg tune flags CO_PROC
696 1.1 mrg base 8M_MAIN
697 1.1.1.2 mrg profile M
698 1.1 mrg isa ARMv8m_main
699 1.1.1.2 mrg option dsp add armv7em
700 1.1.1.2 mrg # fp => FPv5-sp-d16; fp.dp => FPv5-d16
701 1.1.1.2 mrg option fp add FPv5
702 1.1.1.2 mrg option fp.dp add FPv5 FP_DBL
703 1.1.1.2 mrg option nofp remove ALL_FP
704 1.1.1.2 mrg option nodsp remove armv7em
705 1.1.1.4 mrg option cdecp0 add cdecp0
706 1.1.1.4 mrg option cdecp1 add cdecp1
707 1.1.1.4 mrg option cdecp2 add cdecp2
708 1.1.1.4 mrg option cdecp3 add cdecp3
709 1.1.1.4 mrg option cdecp4 add cdecp4
710 1.1.1.4 mrg option cdecp5 add cdecp5
711 1.1.1.4 mrg option cdecp6 add cdecp6
712 1.1.1.4 mrg option cdecp7 add cdecp7
713 1.1 mrg end arch armv8-m.main
714 1.1 mrg
715 1.1.1.2 mrg begin arch armv8-r
716 1.1.1.2 mrg tune for cortex-r52
717 1.1 mrg tune flags CO_PROC
718 1.1.1.2 mrg base 8R
719 1.1.1.2 mrg profile R
720 1.1.1.2 mrg isa ARMv8r
721 1.1.1.2 mrg option crc add crc32
722 1.1.1.2 mrg # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision
723 1.1.1.2 mrg # note: no fp option for fp-armv8 (d16) + double precision at the moment
724 1.1.1.2 mrg option fp.sp add FPv5
725 1.1.1.2 mrg option simd add FP_ARMv8 NEON
726 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
727 1.1.1.2 mrg option nocrypto remove ALL_CRYPTO
728 1.1.1.2 mrg option nofp remove ALL_FP
729 1.1.1.2 mrg end arch armv8-r
730 1.1 mrg
731 1.1.1.4 mrg begin arch armv8.1-m.main
732 1.1.1.4 mrg tune for cortex-m7
733 1.1.1.4 mrg tune flags CO_PROC
734 1.1.1.4 mrg base 8M_MAIN
735 1.1.1.4 mrg profile M
736 1.1.1.4 mrg isa ARMv8_1m_main
737 1.1.1.4 mrg # fp => FPv5-sp-d16; fp.dp => FPv5-d16
738 1.1.1.4 mrg option dsp add armv7em
739 1.1.1.4 mrg option fp add FPv5 fp16
740 1.1.1.4 mrg option fp.dp add FPv5 FP_DBL fp16
741 1.1.1.4 mrg option nofp remove ALL_FP
742 1.1.1.4 mrg option mve add MVE
743 1.1.1.4 mrg option mve.fp add MVE_FP
744 1.1.1.4 mrg option cdecp0 add cdecp0
745 1.1.1.4 mrg option cdecp1 add cdecp1
746 1.1.1.4 mrg option cdecp2 add cdecp2
747 1.1.1.4 mrg option cdecp3 add cdecp3
748 1.1.1.4 mrg option cdecp4 add cdecp4
749 1.1.1.4 mrg option cdecp5 add cdecp5
750 1.1.1.4 mrg option cdecp6 add cdecp6
751 1.1.1.4 mrg option cdecp7 add cdecp7
752 1.1.1.4 mrg end arch armv8.1-m.main
753 1.1.1.4 mrg
754 1.1 mrg begin arch iwmmxt
755 1.1 mrg tune for iwmmxt
756 1.1 mrg tune flags LDSCHED STRONG XSCALE
757 1.1 mrg base 5TE
758 1.1.1.2 mrg isa ARMv5te xscale iwmmxt
759 1.1 mrg end arch iwmmxt
760 1.1 mrg
761 1.1 mrg begin arch iwmmxt2
762 1.1 mrg tune for iwmmxt2
763 1.1 mrg tune flags LDSCHED STRONG XSCALE
764 1.1 mrg base 5TE
765 1.1.1.2 mrg isa ARMv5te xscale iwmmxt iwmmxt2
766 1.1 mrg end arch iwmmxt2
767 1.1 mrg
768 1.1 mrg # CPU entries
769 1.1 mrg # format:
770 1.1 mrg # begin cpu <name>
771 1.1 mrg # [cname <c-compatible-name>]
772 1.1.1.3 mrg # [alias <name>+]
773 1.1 mrg # [tune for <cpu-name>]
774 1.1 mrg # [tune flags <list>]
775 1.1 mrg # architecture <name>
776 1.1 mrg # [isa <additional-isa-flags-list>]
777 1.1.1.2 mrg # [option <name> add|remove <isa-list>]*
778 1.1.1.2 mrg # [optalias <name> <optname>]*
779 1.1 mrg # [costs <name>]
780 1.1.1.3 mrg # [vendor <vendor-id>
781 1.1.1.3 mrg # [part <part-id> [minrev [maxrev]]]
782 1.1 mrg # end cpu <name>
783 1.1 mrg #
784 1.1 mrg # If omitted, cname is formed from transforming the cpuname to convert
785 1.1 mrg # non-valid punctuation characters to '_'.
786 1.1.1.3 mrg # Any number of alias names may be specified for a CPU. If the name starts
787 1.1.1.3 mrg # with a '!' then it will be recognized as a valid name, but will not
788 1.1.1.3 mrg # be printed in any help text listing permitted CPUs.
789 1.1 mrg # If specified, tune for specifies a CPU target to use for tuning this core.
790 1.1 mrg # isa flags are appended to those defined by the architecture.
791 1.1.1.2 mrg # Each add option must have a distinct feature set and each remove
792 1.1.1.2 mrg # option must similarly have a distinct feature set. Option aliases can be
793 1.1.1.3 mrg # added with the optalias statement.
794 1.1.1.3 mrg # Vendor, part and revision information is used for native CPU and architecture
795 1.1.1.3 mrg # detection. All values must be in hex (lower case) with the leading '0x'
796 1.1.1.3 mrg # omitted. For example the cortex-a9 will have vendor 41 and part c09.
797 1.1.1.3 mrg # Revision information is used to match a subrange of part
798 1.1.1.3 mrg # revisions: minrev <= detected <= maxrev.
799 1.1.1.3 mrg # If a minrev or maxrev are omitted then minrev defaults to zero and maxrev
800 1.1.1.3 mrg # to infinity.
801 1.1.1.3 mrg # Revision information is not implemented yet; no part uses it.
802 1.1 mrg
803 1.1 mrg # V4 Architecture Processors
804 1.1 mrg begin cpu arm8
805 1.1 mrg tune flags LDSCHED
806 1.1 mrg architecture armv4
807 1.1 mrg costs fastmul
808 1.1 mrg end cpu arm8
809 1.1 mrg
810 1.1 mrg begin cpu arm810
811 1.1 mrg tune flags LDSCHED
812 1.1 mrg architecture armv4
813 1.1 mrg costs fastmul
814 1.1 mrg end cpu arm810
815 1.1 mrg
816 1.1 mrg begin cpu strongarm
817 1.1.1.3 mrg alias strongarm110 !strongarm1100 !strongarm1110
818 1.1 mrg tune flags LDSCHED STRONG
819 1.1 mrg architecture armv4
820 1.1 mrg costs strongarm
821 1.1 mrg end cpu strongarm
822 1.1 mrg
823 1.1 mrg begin cpu fa526
824 1.1 mrg tune flags LDSCHED
825 1.1 mrg architecture armv4
826 1.1 mrg costs fastmul
827 1.1 mrg end cpu fa526
828 1.1 mrg
829 1.1 mrg begin cpu fa626
830 1.1 mrg tune flags LDSCHED
831 1.1 mrg architecture armv4
832 1.1 mrg costs fastmul
833 1.1 mrg end cpu fa626
834 1.1 mrg
835 1.1 mrg
836 1.1 mrg # V4T Architecture Processors
837 1.1 mrg begin cpu arm7tdmi
838 1.1.1.3 mrg alias arm7tdmi-s
839 1.1 mrg tune flags CO_PROC
840 1.1 mrg architecture armv4t
841 1.1 mrg costs fastmul
842 1.1 mrg end cpu arm7tdmi
843 1.1 mrg
844 1.1 mrg begin cpu arm710t
845 1.1.1.3 mrg alias arm720t arm740t
846 1.1 mrg tune flags WBUF
847 1.1 mrg architecture armv4t
848 1.1 mrg costs fastmul
849 1.1 mrg end cpu arm710t
850 1.1 mrg
851 1.1 mrg begin cpu arm9
852 1.1 mrg tune flags LDSCHED
853 1.1 mrg architecture armv4t
854 1.1 mrg costs fastmul
855 1.1 mrg end cpu arm9
856 1.1 mrg
857 1.1 mrg begin cpu arm9tdmi
858 1.1 mrg tune flags LDSCHED
859 1.1 mrg architecture armv4t
860 1.1 mrg costs fastmul
861 1.1 mrg end cpu arm9tdmi
862 1.1 mrg
863 1.1 mrg begin cpu arm920t
864 1.1.1.3 mrg alias arm920 arm922t arm940t ep9312
865 1.1 mrg tune flags LDSCHED
866 1.1 mrg architecture armv4t
867 1.1 mrg costs fastmul
868 1.1 mrg end cpu arm920t
869 1.1 mrg
870 1.1 mrg
871 1.1 mrg # V5T Architecture Processors
872 1.1.1.2 mrg # These used VFPv1 which isn't supported by GCC
873 1.1 mrg begin cpu arm10tdmi
874 1.1.1.3 mrg alias arm1020t
875 1.1 mrg tune flags LDSCHED
876 1.1 mrg architecture armv5t
877 1.1 mrg costs fastmul
878 1.1 mrg end cpu arm10tdmi
879 1.1 mrg
880 1.1 mrg
881 1.1 mrg # V5TE Architecture Processors
882 1.1 mrg begin cpu arm9e
883 1.1.1.3 mrg alias arm946e-s arm966e-s arm968e-s
884 1.1 mrg tune flags LDSCHED
885 1.1.1.3 mrg architecture armv5te+fp
886 1.1.1.2 mrg option nofp remove ALL_FP
887 1.1 mrg costs 9e
888 1.1 mrg end cpu arm9e
889 1.1 mrg
890 1.1 mrg begin cpu arm10e
891 1.1.1.3 mrg alias arm1020e arm1022e
892 1.1 mrg tune flags LDSCHED
893 1.1.1.3 mrg architecture armv5te+fp
894 1.1.1.2 mrg option nofp remove ALL_FP
895 1.1 mrg costs fastmul
896 1.1 mrg end cpu arm10e
897 1.1 mrg
898 1.1 mrg begin cpu xscale
899 1.1 mrg tune flags LDSCHED XSCALE
900 1.1 mrg architecture armv5te
901 1.1.1.2 mrg isa xscale
902 1.1 mrg costs xscale
903 1.1 mrg end cpu xscale
904 1.1 mrg
905 1.1 mrg begin cpu iwmmxt
906 1.1 mrg tune flags LDSCHED XSCALE
907 1.1 mrg architecture iwmmxt
908 1.1 mrg costs xscale
909 1.1 mrg end cpu iwmmxt
910 1.1 mrg
911 1.1 mrg begin cpu iwmmxt2
912 1.1 mrg tune flags LDSCHED XSCALE
913 1.1 mrg architecture iwmmxt2
914 1.1 mrg costs xscale
915 1.1 mrg end cpu iwmmxt2
916 1.1 mrg
917 1.1 mrg begin cpu fa606te
918 1.1 mrg tune flags LDSCHED
919 1.1 mrg architecture armv5te
920 1.1 mrg costs 9e
921 1.1 mrg end cpu fa606te
922 1.1 mrg
923 1.1 mrg begin cpu fa626te
924 1.1 mrg tune flags LDSCHED
925 1.1 mrg architecture armv5te
926 1.1 mrg costs 9e
927 1.1 mrg end cpu fa626te
928 1.1 mrg
929 1.1 mrg begin cpu fmp626
930 1.1 mrg tune flags LDSCHED
931 1.1 mrg architecture armv5te
932 1.1 mrg costs 9e
933 1.1 mrg end cpu fmp626
934 1.1 mrg
935 1.1 mrg begin cpu fa726te
936 1.1 mrg tune flags LDSCHED
937 1.1 mrg architecture armv5te
938 1.1 mrg costs fa726te
939 1.1 mrg end cpu fa726te
940 1.1 mrg
941 1.1 mrg
942 1.1 mrg # V5TEJ Architecture Processors
943 1.1 mrg begin cpu arm926ej-s
944 1.1 mrg cname arm926ejs
945 1.1 mrg tune flags LDSCHED
946 1.1.1.3 mrg architecture armv5tej+fp
947 1.1.1.2 mrg option nofp remove ALL_FP
948 1.1 mrg costs 9e
949 1.1.1.3 mrg vendor 41
950 1.1.1.3 mrg part 926
951 1.1 mrg end cpu arm926ej-s
952 1.1 mrg
953 1.1 mrg begin cpu arm1026ej-s
954 1.1 mrg cname arm1026ejs
955 1.1 mrg tune flags LDSCHED
956 1.1.1.3 mrg architecture armv5tej+fp
957 1.1.1.2 mrg option nofp remove ALL_FP
958 1.1 mrg costs 9e
959 1.1.1.3 mrg vendor 41
960 1.1.1.3 mrg part a26
961 1.1 mrg end cpu arm1026ej-s
962 1.1 mrg
963 1.1 mrg
964 1.1 mrg # V6 Architecture Processors
965 1.1 mrg begin cpu arm1136j-s
966 1.1 mrg cname arm1136js
967 1.1 mrg tune flags LDSCHED
968 1.1 mrg architecture armv6j
969 1.1 mrg costs 9e
970 1.1 mrg end cpu arm1136j-s
971 1.1 mrg
972 1.1 mrg begin cpu arm1136jf-s
973 1.1 mrg cname arm1136jfs
974 1.1 mrg tune flags LDSCHED
975 1.1.1.3 mrg architecture armv6j+fp
976 1.1 mrg costs 9e
977 1.1.1.3 mrg vendor 41
978 1.1.1.3 mrg part b36
979 1.1 mrg end cpu arm1136jf-s
980 1.1 mrg
981 1.1 mrg begin cpu arm1176jz-s
982 1.1 mrg cname arm1176jzs
983 1.1 mrg tune flags LDSCHED
984 1.1 mrg architecture armv6kz
985 1.1 mrg costs 9e
986 1.1 mrg end cpu arm1176jz-s
987 1.1 mrg
988 1.1 mrg begin cpu arm1176jzf-s
989 1.1 mrg cname arm1176jzfs
990 1.1 mrg tune flags LDSCHED
991 1.1.1.3 mrg architecture armv6kz+fp
992 1.1 mrg costs 9e
993 1.1.1.3 mrg vendor 41
994 1.1.1.3 mrg part b76
995 1.1 mrg end cpu arm1176jzf-s
996 1.1 mrg
997 1.1 mrg begin cpu mpcorenovfp
998 1.1 mrg tune flags LDSCHED
999 1.1 mrg architecture armv6k
1000 1.1 mrg costs 9e
1001 1.1 mrg end cpu mpcorenovfp
1002 1.1 mrg
1003 1.1 mrg begin cpu mpcore
1004 1.1 mrg tune flags LDSCHED
1005 1.1.1.3 mrg architecture armv6k+fp
1006 1.1 mrg costs 9e
1007 1.1.1.3 mrg vendor 41
1008 1.1.1.3 mrg part b02
1009 1.1 mrg end cpu mpcore
1010 1.1 mrg
1011 1.1 mrg begin cpu arm1156t2-s
1012 1.1 mrg cname arm1156t2s
1013 1.1 mrg tune flags LDSCHED
1014 1.1 mrg architecture armv6t2
1015 1.1 mrg costs v6t2
1016 1.1 mrg end cpu arm1156t2-s
1017 1.1 mrg
1018 1.1 mrg begin cpu arm1156t2f-s
1019 1.1 mrg cname arm1156t2fs
1020 1.1 mrg tune flags LDSCHED
1021 1.1.1.3 mrg architecture armv6t2+fp
1022 1.1 mrg costs v6t2
1023 1.1.1.3 mrg vendor 41
1024 1.1.1.3 mrg part b56
1025 1.1 mrg end cpu arm1156t2f-s
1026 1.1 mrg
1027 1.1 mrg
1028 1.1 mrg # V6M Architecture Processors
1029 1.1 mrg begin cpu cortex-m1
1030 1.1 mrg cname cortexm1
1031 1.1 mrg tune flags LDSCHED
1032 1.1.1.2 mrg architecture armv6s-m
1033 1.1 mrg costs v6m
1034 1.1.1.3 mrg vendor 41
1035 1.1.1.3 mrg part c21
1036 1.1 mrg end cpu cortex-m1
1037 1.1 mrg
1038 1.1 mrg begin cpu cortex-m0
1039 1.1 mrg cname cortexm0
1040 1.1 mrg tune flags LDSCHED
1041 1.1.1.2 mrg architecture armv6s-m
1042 1.1 mrg costs v6m
1043 1.1.1.3 mrg vendor 41
1044 1.1.1.3 mrg part c20
1045 1.1 mrg end cpu cortex-m0
1046 1.1 mrg
1047 1.1 mrg begin cpu cortex-m0plus
1048 1.1 mrg cname cortexm0plus
1049 1.1 mrg tune flags LDSCHED
1050 1.1.1.2 mrg architecture armv6s-m
1051 1.1 mrg costs v6m
1052 1.1 mrg end cpu cortex-m0plus
1053 1.1 mrg
1054 1.1 mrg
1055 1.1 mrg # V6M Architecture Processors for small-multiply implementations.
1056 1.1 mrg begin cpu cortex-m1.small-multiply
1057 1.1 mrg cname cortexm1smallmultiply
1058 1.1 mrg tune for cortex-m1
1059 1.1 mrg tune flags LDSCHED SMALLMUL
1060 1.1.1.2 mrg architecture armv6s-m
1061 1.1 mrg costs v6m
1062 1.1 mrg end cpu cortex-m1.small-multiply
1063 1.1 mrg
1064 1.1 mrg begin cpu cortex-m0.small-multiply
1065 1.1 mrg cname cortexm0smallmultiply
1066 1.1 mrg tune for cortex-m0
1067 1.1 mrg tune flags LDSCHED SMALLMUL
1068 1.1.1.2 mrg architecture armv6s-m
1069 1.1 mrg costs v6m
1070 1.1 mrg end cpu cortex-m0.small-multiply
1071 1.1 mrg
1072 1.1 mrg begin cpu cortex-m0plus.small-multiply
1073 1.1 mrg cname cortexm0plussmallmultiply
1074 1.1 mrg tune for cortex-m0plus
1075 1.1 mrg tune flags LDSCHED SMALLMUL
1076 1.1.1.2 mrg architecture armv6s-m
1077 1.1 mrg costs v6m
1078 1.1 mrg end cpu cortex-m0plus.small-multiply
1079 1.1 mrg
1080 1.1 mrg
1081 1.1 mrg # V7 Architecture Processors
1082 1.1 mrg begin cpu generic-armv7-a
1083 1.1 mrg cname genericv7a
1084 1.1 mrg tune flags LDSCHED
1085 1.1.1.3 mrg architecture armv7-a+fp
1086 1.1.1.4 mrg isa quirk_no_asmcpu
1087 1.1.1.2 mrg option mp add mp
1088 1.1.1.2 mrg option sec add sec
1089 1.1.1.2 mrg option vfpv3-d16 add VFPv3 FP_DBL
1090 1.1.1.2 mrg option vfpv3 add VFPv3 FP_D32
1091 1.1.1.2 mrg option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
1092 1.1.1.2 mrg option vfpv3-fp16 add VFPv3 FP_D32 fp16conv
1093 1.1.1.2 mrg option vfpv4-d16 add VFPv4 FP_DBL
1094 1.1.1.2 mrg option vfpv4 add VFPv4 FP_D32
1095 1.1.1.2 mrg option simd add VFPv3 NEON
1096 1.1.1.2 mrg optalias neon simd
1097 1.1.1.2 mrg optalias neon-vfpv3 simd
1098 1.1.1.2 mrg option neon-fp16 add VFPv3 NEON fp16conv
1099 1.1.1.2 mrg option neon-vfpv4 add VFPv4 NEON
1100 1.1.1.2 mrg option nosimd remove ALL_SIMD
1101 1.1.1.2 mrg option nofp remove ALL_FP
1102 1.1 mrg costs cortex
1103 1.1 mrg end cpu generic-armv7-a
1104 1.1 mrg
1105 1.1 mrg begin cpu cortex-a5
1106 1.1 mrg cname cortexa5
1107 1.1 mrg tune flags LDSCHED
1108 1.1.1.3 mrg architecture armv7-a+mp+sec+neon-fp16
1109 1.1.1.2 mrg option nosimd remove ALL_SIMD
1110 1.1.1.2 mrg option nofp remove ALL_FP
1111 1.1 mrg costs cortex_a5
1112 1.1.1.3 mrg vendor 41
1113 1.1.1.3 mrg part c05
1114 1.1 mrg end cpu cortex-a5
1115 1.1 mrg
1116 1.1 mrg begin cpu cortex-a7
1117 1.1 mrg cname cortexa7
1118 1.1 mrg tune flags LDSCHED
1119 1.1.1.3 mrg architecture armv7ve+simd
1120 1.1.1.2 mrg option nosimd remove ALL_SIMD
1121 1.1.1.2 mrg option nofp remove ALL_FP
1122 1.1 mrg costs cortex_a7
1123 1.1.1.3 mrg vendor 41
1124 1.1.1.3 mrg part c07
1125 1.1 mrg end cpu cortex-a7
1126 1.1 mrg
1127 1.1 mrg begin cpu cortex-a8
1128 1.1 mrg cname cortexa8
1129 1.1 mrg tune flags LDSCHED
1130 1.1.1.3 mrg architecture armv7-a+sec+simd
1131 1.1.1.2 mrg option nofp remove ALL_FP
1132 1.1 mrg costs cortex_a8
1133 1.1.1.3 mrg vendor 41
1134 1.1.1.3 mrg part c08
1135 1.1 mrg end cpu cortex-a8
1136 1.1 mrg
1137 1.1 mrg begin cpu cortex-a9
1138 1.1 mrg cname cortexa9
1139 1.1 mrg tune flags LDSCHED
1140 1.1.1.3 mrg architecture armv7-a+mp+sec+neon-fp16
1141 1.1.1.2 mrg option nosimd remove ALL_SIMD
1142 1.1.1.2 mrg option nofp remove ALL_FP
1143 1.1 mrg costs cortex_a9
1144 1.1.1.3 mrg vendor 41
1145 1.1.1.3 mrg part c09
1146 1.1 mrg end cpu cortex-a9
1147 1.1 mrg
1148 1.1 mrg begin cpu cortex-a12
1149 1.1 mrg cname cortexa12
1150 1.1 mrg tune for cortex-a17
1151 1.1 mrg tune flags LDSCHED
1152 1.1.1.3 mrg architecture armv7ve+simd
1153 1.1.1.2 mrg option nofp remove ALL_FP
1154 1.1 mrg costs cortex_a12
1155 1.1.1.3 mrg vendor 41
1156 1.1.1.3 mrg part c0d
1157 1.1 mrg end cpu cortex-a12
1158 1.1 mrg
1159 1.1 mrg begin cpu cortex-a15
1160 1.1 mrg cname cortexa15
1161 1.1 mrg tune flags LDSCHED
1162 1.1.1.3 mrg architecture armv7ve+simd
1163 1.1.1.2 mrg option nofp remove ALL_FP
1164 1.1 mrg costs cortex_a15
1165 1.1.1.3 mrg vendor 41
1166 1.1.1.3 mrg part c0f
1167 1.1 mrg end cpu cortex-a15
1168 1.1 mrg
1169 1.1 mrg begin cpu cortex-a17
1170 1.1 mrg cname cortexa17
1171 1.1 mrg tune flags LDSCHED
1172 1.1.1.3 mrg architecture armv7ve+simd
1173 1.1.1.2 mrg option nofp remove ALL_FP
1174 1.1 mrg costs cortex_a12
1175 1.1.1.3 mrg vendor 41
1176 1.1.1.3 mrg part c0e
1177 1.1 mrg end cpu cortex-a17
1178 1.1 mrg
1179 1.1 mrg begin cpu cortex-r4
1180 1.1 mrg cname cortexr4
1181 1.1 mrg tune flags LDSCHED
1182 1.1 mrg architecture armv7-r
1183 1.1 mrg costs cortex
1184 1.1 mrg end cpu cortex-r4
1185 1.1 mrg
1186 1.1 mrg begin cpu cortex-r4f
1187 1.1 mrg cname cortexr4f
1188 1.1 mrg tune flags LDSCHED
1189 1.1.1.3 mrg architecture armv7-r+fp
1190 1.1 mrg costs cortex
1191 1.1.1.3 mrg vendor 41
1192 1.1.1.3 mrg part c14
1193 1.1 mrg end cpu cortex-r4f
1194 1.1 mrg
1195 1.1 mrg begin cpu cortex-r5
1196 1.1 mrg cname cortexr5
1197 1.1 mrg tune flags LDSCHED
1198 1.1.1.3 mrg architecture armv7-r+idiv+fp
1199 1.1.1.2 mrg option nofp.dp remove FP_DBL
1200 1.1.1.2 mrg option nofp remove ALL_FP
1201 1.1 mrg costs cortex
1202 1.1.1.3 mrg vendor 41
1203 1.1.1.3 mrg part c15
1204 1.1 mrg end cpu cortex-r5
1205 1.1 mrg
1206 1.1 mrg begin cpu cortex-r7
1207 1.1 mrg cname cortexr7
1208 1.1 mrg tune flags LDSCHED
1209 1.1.1.3 mrg architecture armv7-r+idiv+vfpv3-d16-fp16
1210 1.1.1.2 mrg option nofp.dp remove FP_DBL
1211 1.1.1.2 mrg option nofp remove ALL_FP
1212 1.1 mrg costs cortex
1213 1.1.1.3 mrg vendor 41
1214 1.1.1.3 mrg part c17
1215 1.1 mrg end cpu cortex-r7
1216 1.1 mrg
1217 1.1 mrg begin cpu cortex-r8
1218 1.1 mrg cname cortexr8
1219 1.1 mrg tune for cortex-r7
1220 1.1 mrg tune flags LDSCHED
1221 1.1.1.3 mrg architecture armv7-r+idiv+vfpv3-d16-fp16
1222 1.1.1.2 mrg option nofp.dp remove FP_DBL
1223 1.1.1.2 mrg option nofp remove ALL_FP
1224 1.1 mrg costs cortex
1225 1.1.1.3 mrg vendor 41
1226 1.1.1.3 mrg part c18
1227 1.1 mrg end cpu cortex-r8
1228 1.1 mrg
1229 1.1 mrg begin cpu cortex-m7
1230 1.1 mrg cname cortexm7
1231 1.1 mrg tune flags LDSCHED
1232 1.1.1.3 mrg architecture armv7e-m+fp.dp
1233 1.1 mrg isa quirk_no_volatile_ce
1234 1.1.1.2 mrg option nofp.dp remove FP_DBL
1235 1.1.1.2 mrg option nofp remove ALL_FP
1236 1.1 mrg costs cortex_m7
1237 1.1 mrg end cpu cortex-m7
1238 1.1 mrg
1239 1.1 mrg begin cpu cortex-m4
1240 1.1 mrg cname cortexm4
1241 1.1 mrg tune flags LDSCHED
1242 1.1.1.3 mrg architecture armv7e-m+fp
1243 1.1.1.2 mrg option nofp remove ALL_FP
1244 1.1 mrg costs v7m
1245 1.1.1.3 mrg vendor 41
1246 1.1.1.3 mrg part c24
1247 1.1 mrg end cpu cortex-m4
1248 1.1 mrg
1249 1.1 mrg begin cpu cortex-m3
1250 1.1 mrg cname cortexm3
1251 1.1 mrg tune flags LDSCHED
1252 1.1 mrg architecture armv7-m
1253 1.1 mrg isa quirk_cm3_ldrd
1254 1.1 mrg costs v7m
1255 1.1.1.3 mrg vendor 41
1256 1.1.1.3 mrg part c23
1257 1.1 mrg end cpu cortex-m3
1258 1.1 mrg
1259 1.1 mrg begin cpu marvell-pj4
1260 1.1 mrg tune flags LDSCHED
1261 1.1.1.4 mrg architecture armv7-a+mp+sec+fp
1262 1.1 mrg costs marvell_pj4
1263 1.1 mrg end cpu marvell-pj4
1264 1.1 mrg
1265 1.1 mrg
1266 1.1 mrg # V7 big.LITTLE implementations
1267 1.1 mrg begin cpu cortex-a15.cortex-a7
1268 1.1 mrg cname cortexa15cortexa7
1269 1.1 mrg tune for cortex-a7
1270 1.1 mrg tune flags LDSCHED
1271 1.1.1.3 mrg architecture armv7ve+simd
1272 1.1.1.2 mrg option nofp remove ALL_FP
1273 1.1 mrg costs cortex_a15
1274 1.1 mrg end cpu cortex-a15.cortex-a7
1275 1.1 mrg
1276 1.1 mrg begin cpu cortex-a17.cortex-a7
1277 1.1 mrg cname cortexa17cortexa7
1278 1.1 mrg tune for cortex-a7
1279 1.1 mrg tune flags LDSCHED
1280 1.1.1.3 mrg architecture armv7ve+simd
1281 1.1.1.2 mrg option nofp remove ALL_FP
1282 1.1 mrg costs cortex_a12
1283 1.1 mrg end cpu cortex-a17.cortex-a7
1284 1.1 mrg
1285 1.1 mrg
1286 1.1 mrg # V8 A-profile Architecture Processors
1287 1.1 mrg begin cpu cortex-a32
1288 1.1 mrg cname cortexa32
1289 1.1 mrg tune for cortex-a53
1290 1.1 mrg tune flags LDSCHED
1291 1.1.1.3 mrg architecture armv8-a+crc+simd
1292 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1293 1.1.1.2 mrg option nofp remove ALL_FP
1294 1.1 mrg costs cortex_a35
1295 1.1.1.3 mrg vendor 41
1296 1.1.1.3 mrg part d01
1297 1.1 mrg end cpu cortex-a32
1298 1.1 mrg
1299 1.1 mrg begin cpu cortex-a35
1300 1.1 mrg cname cortexa35
1301 1.1 mrg tune for cortex-a53
1302 1.1 mrg tune flags LDSCHED
1303 1.1.1.3 mrg architecture armv8-a+crc+simd
1304 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1305 1.1.1.2 mrg option nofp remove ALL_FP
1306 1.1 mrg costs cortex_a35
1307 1.1.1.3 mrg vendor 41
1308 1.1.1.3 mrg part d04
1309 1.1 mrg end cpu cortex-a35
1310 1.1 mrg
1311 1.1 mrg begin cpu cortex-a53
1312 1.1 mrg cname cortexa53
1313 1.1 mrg tune flags LDSCHED
1314 1.1.1.3 mrg architecture armv8-a+crc+simd
1315 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1316 1.1.1.2 mrg option nofp remove ALL_FP
1317 1.1 mrg costs cortex_a53
1318 1.1.1.3 mrg vendor 41
1319 1.1.1.3 mrg part d03
1320 1.1 mrg end cpu cortex-a53
1321 1.1 mrg
1322 1.1 mrg begin cpu cortex-a57
1323 1.1 mrg cname cortexa57
1324 1.1 mrg tune flags LDSCHED
1325 1.1.1.3 mrg architecture armv8-a+crc+simd
1326 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1327 1.1 mrg costs cortex_a57
1328 1.1.1.3 mrg vendor 41
1329 1.1.1.3 mrg part d07
1330 1.1 mrg end cpu cortex-a57
1331 1.1 mrg
1332 1.1 mrg begin cpu cortex-a72
1333 1.1 mrg cname cortexa72
1334 1.1 mrg tune for cortex-a57
1335 1.1 mrg tune flags LDSCHED
1336 1.1.1.3 mrg architecture armv8-a+crc+simd
1337 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1338 1.1 mrg costs cortex_a57
1339 1.1.1.3 mrg vendor 41
1340 1.1.1.3 mrg part d08
1341 1.1 mrg end cpu cortex-a72
1342 1.1 mrg
1343 1.1 mrg begin cpu cortex-a73
1344 1.1 mrg cname cortexa73
1345 1.1 mrg tune for cortex-a57
1346 1.1 mrg tune flags LDSCHED
1347 1.1.1.3 mrg architecture armv8-a+crc+simd
1348 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1349 1.1 mrg costs cortex_a73
1350 1.1.1.3 mrg vendor 41
1351 1.1.1.3 mrg part d09
1352 1.1 mrg end cpu cortex-a73
1353 1.1 mrg
1354 1.1 mrg begin cpu exynos-m1
1355 1.1 mrg cname exynosm1
1356 1.1 mrg tune flags LDSCHED
1357 1.1.1.3 mrg architecture armv8-a+crc+simd
1358 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1359 1.1 mrg costs exynosm1
1360 1.1 mrg end cpu exynos-m1
1361 1.1 mrg
1362 1.1 mrg begin cpu xgene1
1363 1.1 mrg tune flags LDSCHED
1364 1.1.1.3 mrg architecture armv8-a+simd
1365 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1366 1.1 mrg costs xgene1
1367 1.1 mrg end cpu xgene1
1368 1.1 mrg
1369 1.1 mrg # V8 A-profile big.LITTLE implementations
1370 1.1 mrg begin cpu cortex-a57.cortex-a53
1371 1.1 mrg cname cortexa57cortexa53
1372 1.1 mrg tune for cortex-a53
1373 1.1 mrg tune flags LDSCHED
1374 1.1.1.3 mrg architecture armv8-a+crc+simd
1375 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1376 1.1 mrg costs cortex_a57
1377 1.1 mrg end cpu cortex-a57.cortex-a53
1378 1.1 mrg
1379 1.1 mrg begin cpu cortex-a72.cortex-a53
1380 1.1 mrg cname cortexa72cortexa53
1381 1.1 mrg tune for cortex-a53
1382 1.1 mrg tune flags LDSCHED
1383 1.1.1.3 mrg architecture armv8-a+crc+simd
1384 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1385 1.1 mrg costs cortex_a57
1386 1.1 mrg end cpu cortex-a72.cortex-a53
1387 1.1 mrg
1388 1.1 mrg begin cpu cortex-a73.cortex-a35
1389 1.1 mrg cname cortexa73cortexa35
1390 1.1 mrg tune for cortex-a53
1391 1.1 mrg tune flags LDSCHED
1392 1.1.1.3 mrg architecture armv8-a+crc+simd
1393 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1394 1.1 mrg costs cortex_a73
1395 1.1 mrg end cpu cortex-a73.cortex-a35
1396 1.1 mrg
1397 1.1 mrg begin cpu cortex-a73.cortex-a53
1398 1.1 mrg cname cortexa73cortexa53
1399 1.1 mrg tune for cortex-a53
1400 1.1 mrg tune flags LDSCHED
1401 1.1.1.3 mrg architecture armv8-a+crc+simd
1402 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1403 1.1 mrg costs cortex_a73
1404 1.1 mrg end cpu cortex-a73.cortex-a53
1405 1.1 mrg
1406 1.1 mrg
1407 1.1.1.2 mrg # ARMv8.2 A-profile Architecture Processors
1408 1.1.1.2 mrg begin cpu cortex-a55
1409 1.1.1.2 mrg cname cortexa55
1410 1.1.1.2 mrg tune for cortex-a53
1411 1.1.1.2 mrg tune flags LDSCHED
1412 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1413 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1414 1.1.1.2 mrg option nofp remove ALL_FP
1415 1.1.1.2 mrg costs cortex_a53
1416 1.1.1.3 mrg vendor 41
1417 1.1.1.3 mrg part d05
1418 1.1.1.2 mrg end cpu cortex-a55
1419 1.1.1.2 mrg
1420 1.1.1.2 mrg begin cpu cortex-a75
1421 1.1.1.2 mrg cname cortexa75
1422 1.1.1.2 mrg tune for cortex-a57
1423 1.1.1.2 mrg tune flags LDSCHED
1424 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1425 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1426 1.1.1.2 mrg costs cortex_a73
1427 1.1.1.3 mrg vendor 41
1428 1.1.1.3 mrg part d0a
1429 1.1.1.2 mrg end cpu cortex-a75
1430 1.1.1.2 mrg
1431 1.1.1.3 mrg begin cpu cortex-a76
1432 1.1.1.3 mrg cname cortexa76
1433 1.1.1.3 mrg tune for cortex-a57
1434 1.1.1.3 mrg tune flags LDSCHED
1435 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1436 1.1.1.3 mrg option crypto add FP_ARMv8 CRYPTO
1437 1.1.1.3 mrg costs cortex_a57
1438 1.1.1.3 mrg vendor 41
1439 1.1.1.3 mrg part d0b
1440 1.1.1.3 mrg end cpu cortex-a76
1441 1.1.1.3 mrg
1442 1.1.1.4 mrg begin cpu cortex-a76ae
1443 1.1.1.4 mrg cname cortexa76ae
1444 1.1.1.4 mrg tune for cortex-a57
1445 1.1.1.4 mrg tune flags LDSCHED
1446 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1447 1.1.1.4 mrg option crypto add FP_ARMv8 CRYPTO
1448 1.1.1.4 mrg costs cortex_a57
1449 1.1.1.4 mrg vendor 41
1450 1.1.1.4 mrg part d0e
1451 1.1.1.4 mrg end cpu cortex-a76ae
1452 1.1.1.4 mrg
1453 1.1.1.4 mrg begin cpu cortex-a77
1454 1.1.1.4 mrg cname cortexa77
1455 1.1.1.4 mrg tune for cortex-a57
1456 1.1.1.4 mrg tune flags LDSCHED
1457 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1458 1.1.1.4 mrg option crypto add FP_ARMv8 CRYPTO
1459 1.1.1.4 mrg costs cortex_a57
1460 1.1.1.4 mrg vendor 41
1461 1.1.1.4 mrg part d0d
1462 1.1.1.4 mrg end cpu cortex-a77
1463 1.1.1.4 mrg
1464 1.1.1.3 mrg begin cpu neoverse-n1
1465 1.1.1.3 mrg cname neoversen1
1466 1.1.1.3 mrg alias !ares
1467 1.1.1.3 mrg tune for cortex-a57
1468 1.1.1.3 mrg tune flags LDSCHED
1469 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1470 1.1.1.3 mrg option crypto add FP_ARMv8 CRYPTO
1471 1.1.1.3 mrg costs cortex_a57
1472 1.1.1.3 mrg vendor 41
1473 1.1.1.3 mrg part d0c
1474 1.1.1.3 mrg end cpu neoverse-n1
1475 1.1.1.2 mrg
1476 1.1.1.2 mrg # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
1477 1.1.1.2 mrg begin cpu cortex-a75.cortex-a55
1478 1.1.1.2 mrg cname cortexa75cortexa55
1479 1.1.1.2 mrg tune for cortex-a53
1480 1.1.1.2 mrg tune flags LDSCHED
1481 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1482 1.1.1.2 mrg option crypto add FP_ARMv8 CRYPTO
1483 1.1.1.2 mrg costs cortex_a73
1484 1.1.1.2 mrg end cpu cortex-a75.cortex-a55
1485 1.1.1.2 mrg
1486 1.1.1.3 mrg begin cpu cortex-a76.cortex-a55
1487 1.1.1.3 mrg cname cortexa76cortexa55
1488 1.1.1.3 mrg tune for cortex-a53
1489 1.1.1.3 mrg tune flags LDSCHED
1490 1.1.1.4 mrg architecture armv8.2-a+fp16+dotprod
1491 1.1.1.3 mrg option crypto add FP_ARMv8 CRYPTO
1492 1.1.1.3 mrg costs cortex_a57
1493 1.1.1.3 mrg end cpu cortex-a76.cortex-a55
1494 1.1.1.3 mrg
1495 1.1.1.4 mrg # Armv8.4 A-profile Architecture Processors
1496 1.1.1.4 mrg begin cpu neoverse-v1
1497 1.1.1.4 mrg cname neoversev1
1498 1.1.1.4 mrg tune for cortex-a57
1499 1.1.1.4 mrg tune flags LDSCHED
1500 1.1.1.4 mrg architecture armv8.4-a+fp16+bf16+i8mm
1501 1.1.1.4 mrg option crypto add FP_ARMv8 CRYPTO
1502 1.1.1.4 mrg costs cortex_a57
1503 1.1.1.4 mrg vendor 41
1504 1.1.1.4 mrg part 0xd40
1505 1.1.1.4 mrg end cpu neoverse-v1
1506 1.1.1.4 mrg
1507 1.1.1.4 mrg # Armv8.5 A-profile Architecture Processors
1508 1.1.1.4 mrg begin cpu neoverse-n2
1509 1.1.1.4 mrg cname neoversen2
1510 1.1.1.4 mrg tune for cortex-a57
1511 1.1.1.4 mrg tune flags LDSCHED
1512 1.1.1.4 mrg architecture armv8.5-a+fp16+bf16+i8mm
1513 1.1.1.4 mrg option crypto add FP_ARMv8 CRYPTO
1514 1.1.1.4 mrg costs cortex_a57
1515 1.1.1.4 mrg vendor 41
1516 1.1.1.4 mrg part 0xd49
1517 1.1.1.4 mrg end cpu neoverse-n2
1518 1.1.1.4 mrg
1519 1.1 mrg # V8 M-profile implementations.
1520 1.1 mrg begin cpu cortex-m23
1521 1.1 mrg cname cortexm23
1522 1.1 mrg tune flags LDSCHED
1523 1.1 mrg architecture armv8-m.base
1524 1.1 mrg costs v6m
1525 1.1 mrg end cpu cortex-m23
1526 1.1 mrg
1527 1.1 mrg begin cpu cortex-m33
1528 1.1 mrg cname cortexm33
1529 1.1 mrg tune flags LDSCHED
1530 1.1.1.3 mrg architecture armv8-m.main+dsp+fp
1531 1.1.1.2 mrg option nofp remove ALL_FP
1532 1.1.1.2 mrg option nodsp remove armv7em
1533 1.1.1.4 mrg isa quirk_vlldm
1534 1.1 mrg costs v7m
1535 1.1 mrg end cpu cortex-m33
1536 1.1 mrg
1537 1.1.1.4 mrg begin cpu cortex-m35p
1538 1.1.1.4 mrg cname cortexm35p
1539 1.1.1.4 mrg tune flags LDSCHED
1540 1.1.1.4 mrg architecture armv8-m.main+dsp+fp
1541 1.1.1.4 mrg option nofp remove ALL_FP
1542 1.1.1.4 mrg option nodsp remove armv7em
1543 1.1.1.4 mrg isa quirk_vlldm
1544 1.1.1.4 mrg costs v7m
1545 1.1.1.4 mrg end cpu cortex-m35p
1546 1.1.1.4 mrg
1547 1.1.1.4 mrg begin cpu cortex-m55
1548 1.1.1.4 mrg cname cortexm55
1549 1.1.1.4 mrg tune flags LDSCHED
1550 1.1.1.4 mrg architecture armv8.1-m.main+mve.fp+fp.dp
1551 1.1.1.4 mrg option nomve.fp remove mve_float
1552 1.1.1.4 mrg option nomve remove mve mve_float
1553 1.1.1.4 mrg option nofp remove ALL_FP mve_float
1554 1.1.1.4 mrg option nodsp remove MVE mve_float
1555 1.1.1.4 mrg isa quirk_no_asmcpu quirk_vlldm
1556 1.1.1.4 mrg costs v7m
1557 1.1.1.4 mrg vendor 41
1558 1.1.1.4 mrg end cpu cortex-m55
1559 1.1.1.4 mrg
1560 1.1.1.2 mrg # V8 R-profile implementations.
1561 1.1.1.2 mrg begin cpu cortex-r52
1562 1.1.1.2 mrg cname cortexr52
1563 1.1.1.2 mrg tune flags LDSCHED
1564 1.1.1.2 mrg architecture armv8-r+crc+simd
1565 1.1.1.2 mrg option nofp.dp remove FP_DBL ALL_SIMD
1566 1.1.1.2 mrg costs cortex
1567 1.1.1.3 mrg vendor 41
1568 1.1.1.3 mrg part d13
1569 1.1.1.2 mrg end cpu cortex-r52
1570 1.1.1.2 mrg
1571 1.1 mrg # FPU entries
1572 1.1 mrg # format:
1573 1.1 mrg # begin fpu <name>
1574 1.1 mrg # isa <isa-flags-list>
1575 1.1 mrg # end fpu <name>
1576 1.1 mrg
1577 1.1 mrg begin fpu vfp
1578 1.1 mrg isa VFPv2 FP_DBL
1579 1.1 mrg end fpu vfp
1580 1.1 mrg
1581 1.1 mrg begin fpu vfpv2
1582 1.1 mrg isa VFPv2 FP_DBL
1583 1.1 mrg end fpu vfpv2
1584 1.1 mrg
1585 1.1 mrg begin fpu vfpv3
1586 1.1 mrg isa VFPv3 FP_D32
1587 1.1 mrg end fpu vfpv3
1588 1.1 mrg
1589 1.1 mrg begin fpu vfpv3-fp16
1590 1.1.1.2 mrg isa VFPv3 FP_D32 fp16conv
1591 1.1 mrg end fpu vfpv3-fp16
1592 1.1 mrg
1593 1.1 mrg begin fpu vfpv3-d16
1594 1.1 mrg isa VFPv3 FP_DBL
1595 1.1 mrg end fpu vfpv3-d16
1596 1.1 mrg
1597 1.1 mrg begin fpu vfpv3-d16-fp16
1598 1.1.1.2 mrg isa VFPv3 FP_DBL fp16conv
1599 1.1 mrg end fpu vfpv3-d16-fp16
1600 1.1 mrg
1601 1.1 mrg begin fpu vfpv3xd
1602 1.1 mrg isa VFPv3
1603 1.1 mrg end fpu vfpv3xd
1604 1.1 mrg
1605 1.1 mrg begin fpu vfpv3xd-fp16
1606 1.1.1.2 mrg isa VFPv3 fp16conv
1607 1.1 mrg end fpu vfpv3xd-fp16
1608 1.1 mrg
1609 1.1 mrg begin fpu neon
1610 1.1 mrg isa VFPv3 NEON
1611 1.1 mrg end fpu neon
1612 1.1 mrg
1613 1.1 mrg begin fpu neon-vfpv3
1614 1.1 mrg isa VFPv3 NEON
1615 1.1 mrg end fpu neon-vfpv3
1616 1.1 mrg
1617 1.1 mrg begin fpu neon-fp16
1618 1.1.1.2 mrg isa VFPv3 NEON fp16conv
1619 1.1 mrg end fpu neon-fp16
1620 1.1 mrg
1621 1.1 mrg begin fpu vfpv4
1622 1.1 mrg isa VFPv4 FP_D32
1623 1.1 mrg end fpu vfpv4
1624 1.1 mrg
1625 1.1 mrg begin fpu neon-vfpv4
1626 1.1 mrg isa VFPv4 NEON
1627 1.1 mrg end fpu neon-vfpv4
1628 1.1 mrg
1629 1.1 mrg begin fpu vfpv4-d16
1630 1.1 mrg isa VFPv4 FP_DBL
1631 1.1 mrg end fpu vfpv4-d16
1632 1.1 mrg
1633 1.1 mrg begin fpu fpv4-sp-d16
1634 1.1 mrg isa VFPv4
1635 1.1 mrg end fpu fpv4-sp-d16
1636 1.1 mrg
1637 1.1 mrg begin fpu fpv5-sp-d16
1638 1.1 mrg isa FPv5
1639 1.1 mrg end fpu fpv5-sp-d16
1640 1.1 mrg
1641 1.1 mrg begin fpu fpv5-d16
1642 1.1 mrg isa FPv5 FP_DBL
1643 1.1 mrg end fpu fpv5-d16
1644 1.1 mrg
1645 1.1 mrg begin fpu fp-armv8
1646 1.1.1.2 mrg isa FP_ARMv8
1647 1.1 mrg end fpu fp-armv8
1648 1.1 mrg
1649 1.1 mrg begin fpu neon-fp-armv8
1650 1.1 mrg isa FP_ARMv8 NEON
1651 1.1 mrg end fpu neon-fp-armv8
1652 1.1 mrg
1653 1.1 mrg begin fpu crypto-neon-fp-armv8
1654 1.1 mrg isa FP_ARMv8 CRYPTO
1655 1.1 mrg end fpu crypto-neon-fp-armv8
1656 1.1 mrg
1657 1.1 mrg # Compatibility aliases.
1658 1.1 mrg begin fpu vfp3
1659 1.1 mrg isa VFPv3 FP_D32
1660 1.1 mrg end fpu vfp3
1661