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