comparison gcc/config/arm/arm-cpus.in @ 111:04ced10e8804

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