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