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