1 # CPU, FPU and architecture specifications for ARM.
3 # Copyright (C) 2011-2020 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
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
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
25 # The general form is a sequence of begin..end blocks with the following
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
49 # Features - general convention: all lower case.
57 # Architecture rel 5t.
60 # Architecture rel 5te.
61 define feature armv5te
69 # Architecture rel 6k.
75 # Instructions not present in 'M' profile.
78 # Architecture uses be8 mode in big-endian.
81 # Thumb division instructions.
84 # Architecture rel 7e-m.
85 define feature armv7em
90 # MP extension to ArmV7-A
93 # SEC extension to ArmV7-A
96 # ARM division instructions.
102 # ARMv8 CRC32 instructions.
105 # XScale v2 (Wireless MMX).
106 define feature iwmmxt
108 # XScale Wireless MMX2.
109 define feature iwmmxt2
111 # Architecture rel 8.1.
112 define feature armv8_1
114 # Architecture rel 8.2.
115 define feature armv8_2
117 # Architecture rel 8.3.
118 define feature armv8_3
120 # Architecture rel 8.4.
121 define feature armv8_4
123 # Architecture rel 8.5.
124 define feature armv8_5
126 # M-Profile security extensions.
129 # Floating point and Neon extensions.
130 # VFPv1 is not supported in GCC.
132 # Vector floating point v2.
135 # Vector floating point v3.
138 # Vector floating point v4.
147 # Advanced SIMD instructions.
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).
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
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 # Speculation Barrier Instruction for v8-A architectures, added by
190 # Execution and Data Prediction Restriction Instruction for
191 # v8-A architectures, added by default from v8.5-A
192 define feature predres
194 # Feature groups. Conventionally all (or mostly) upper case.
195 # ALL_FPU lists all the feature bits associated with the floating-point
196 # unit; these will all be removed if the floating-point unit is disabled
197 # (eg -mfloat-abi=soft). ALL_FPU_INTERNAL must ONLY contain features that
198 # form part of a named -mfpu option; it is used to map the capabilities
199 # back to a named FPU for the benefit of the assembler.
201 # ALL_SIMD_INTERNAL and ALL_SIMD are similarly defined to help with the
202 # construction of ALL_FPU and ALL_FPU_INTERNAL; they describe the SIMD
203 # extensions that are either part of a named FPU or optional extensions
207 # List of all cryptographic extensions to stripout if crypto is
208 # disabled. Currently, that's trivial, but we define it anyway for
209 # consistency with the SIMD and FP disable lists.
210 define fgroup ALL_CRYPTO crypto
212 # List of all SIMD bits to strip out if SIMD is disabled. This does
213 # strip off 32 D-registers, but does not remove support for
214 # double-precision FP.
215 define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO
216 define fgroup ALL_SIMD_EXTERNAL dotprod fp16fml
217 define fgroup ALL_SIMD ALL_SIMD_INTERNAL ALL_SIMD_EXTERNAL
219 # List of all FPU bits to strip out if -mfpu is used to override the
220 # default. fp16 is deliberately missing from this list.
221 define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL
222 # Similarly, but including fp16 and other extensions that aren't part of
224 define fgroup ALL_FPU_EXTERNAL fp16
226 # Everything related to the FPU extensions (FP or SIMD).
227 define fgroup ALL_FP ALL_FPU_EXTERNAL ALL_FPU_INTERNAL ALL_SIMD
229 define fgroup ARMv4 armv4 notm
230 define fgroup ARMv4t ARMv4 thumb
231 define fgroup ARMv5t ARMv4t armv5t
232 define fgroup ARMv5te ARMv5t armv5te
233 define fgroup ARMv5tej ARMv5te
234 define fgroup ARMv6 ARMv5te armv6 be8
235 define fgroup ARMv6j ARMv6
236 define fgroup ARMv6k ARMv6 armv6k
237 define fgroup ARMv6z ARMv6
238 define fgroup ARMv6kz ARMv6k quirk_armv6kz
239 define fgroup ARMv6zk ARMv6k
240 define fgroup ARMv6t2 ARMv6 thumb2
241 # This is suspect. ARMv6-m doesn't really pull in any useful features
242 # from ARMv5* or ARMv6.
243 define fgroup ARMv6m armv4 thumb armv5t armv5te armv6 be8
244 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
245 # integer SIMD instructions that are in ARMv6T2. */
246 define fgroup ARMv7 ARMv6m thumb2 armv7
248 define fgroup ARMv7a ARMv7 notm armv6k
249 define fgroup ARMv7ve ARMv7a adiv tdiv lpae mp sec
250 define fgroup ARMv7r ARMv7a tdiv
251 define fgroup ARMv7m ARMv7 tdiv
252 define fgroup ARMv7em ARMv7m armv7em
253 define fgroup ARMv8a ARMv7ve armv8
254 define fgroup ARMv8_1a ARMv8a crc32 armv8_1
255 define fgroup ARMv8_2a ARMv8_1a armv8_2
256 define fgroup ARMv8_3a ARMv8_2a armv8_3
257 define fgroup ARMv8_4a ARMv8_3a armv8_4
258 define fgroup ARMv8_5a ARMv8_4a armv8_5 sb predres
259 define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
260 define fgroup ARMv8m_main ARMv7m armv8 cmse
261 define fgroup ARMv8r ARMv8a
263 # Useful combinations.
264 define fgroup VFPv2 vfpv2
265 define fgroup VFPv3 VFPv2 vfpv3
266 define fgroup VFPv4 VFPv3 vfpv4 fp16conv
267 define fgroup FPv5 VFPv4 fpv5
269 define fgroup FP_DBL fp_dbl
270 define fgroup FP_D32 FP_DBL fp_d32
271 define fgroup FP_ARMv8 FPv5 FP_D32
272 define fgroup NEON FP_D32 neon
273 define fgroup CRYPTO NEON crypto
274 define fgroup DOTPROD NEON dotprod
276 # List of all quirk bits to strip out when comparing CPU features with
278 # xscale isn't really a 'quirk', but it isn't an architecture either and we
279 # need to ignore it for matching purposes.
280 define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale
282 # Architecture entries
286 # [tune flags <list>]
289 # isa <isa-flags-list>
319 option fp add VFPv2 FP_DBL
321 option nofp remove ALL_FP
329 option fp add VFPv2 FP_DBL
331 option nofp remove ALL_FP
339 option fp add VFPv2 FP_DBL
341 option nofp remove ALL_FP
349 option fp add VFPv2 FP_DBL
351 option nofp remove ALL_FP
359 option fp add VFPv2 FP_DBL
361 option nofp remove ALL_FP
369 option fp add VFPv2 FP_DBL
371 option nofp remove ALL_FP
379 option fp add VFPv2 FP_DBL
381 option nofp remove ALL_FP
389 option fp add VFPv2 FP_DBL
391 option nofp remove ALL_FP
399 option fp add VFPv2 FP_DBL
401 option nofp remove ALL_FP
411 # This is now equivalent to armv6-m, but we keep it because some
412 # versions of GAS still distinguish between the two.
425 # fp => VFPv3-d16 (only useful for the A+R profile subset).
426 option fp add VFPv3 FP_DBL
427 optalias vfpv3-d16 fp
428 option nofp remove ALL_FP
439 # fp => VFPv3-d16, simd => neon-vfpv3
440 option fp add VFPv3 FP_DBL
441 optalias vfpv3-d16 fp
442 option vfpv3 add VFPv3 FP_D32
443 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
444 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
445 option vfpv4-d16 add VFPv4 FP_DBL
446 option vfpv4 add VFPv4 FP_D32
447 option simd add VFPv3 NEON
449 optalias neon-vfpv3 simd
450 option neon-fp16 add VFPv3 NEON fp16conv
451 option neon-vfpv4 add VFPv4 NEON
452 option nosimd remove ALL_SIMD
453 option nofp remove ALL_FP
462 # fp => VFPv4-d16, simd => neon-vfpv4
463 option vfpv3-d16 add VFPv3 FP_DBL
464 option vfpv3 add VFPv3 FP_D32
465 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
466 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
467 option fp add VFPv4 FP_DBL
468 optalias vfpv4-d16 fp
469 option vfpv4 add VFPv4 FP_D32
470 option neon add VFPv3 NEON
471 optalias neon-vfpv3 neon
472 option neon-fp16 add VFPv3 NEON fp16conv
473 option simd add VFPv4 NEON
474 optalias neon-vfpv4 simd
475 option nosimd remove ALL_SIMD
476 option nofp remove ALL_FP
485 # ARMv7-r uses VFPv3-d16
486 option fp.sp add VFPv3
487 optalias vfpv3xd fp.sp
488 option fp add VFPv3 FP_DBL
489 optalias vfpv3-d16 fp
490 option vfpv3xd-fp16 add VFPv3 fp16conv
491 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
493 option nofp remove ALL_FP
494 option noidiv remove adiv
503 # In theory FP is permitted in v7-m, but in practice no implementations exist.
504 # leave it out for now.
513 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
515 optalias vfpv4-sp-d16 fp
517 option fp.dp add FPv5 FP_DBL
518 optalias fpv5-d16 fp.dp
519 option nofp remove ALL_FP
529 option simd add FP_ARMv8 NEON
530 option crypto add FP_ARMv8 CRYPTO
531 option nocrypto remove ALL_CRYPTO
532 option nofp remove ALL_FP
534 option predres add predres
543 option simd add FP_ARMv8 NEON
544 option crypto add FP_ARMv8 CRYPTO
545 option nocrypto remove ALL_CRYPTO
546 option nofp remove ALL_FP
548 option predres add predres
557 option simd add FP_ARMv8 NEON
558 option fp16 add fp16 FP_ARMv8 NEON
559 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
560 option crypto add FP_ARMv8 CRYPTO
561 option nocrypto remove ALL_CRYPTO
562 option nofp remove ALL_FP
563 option dotprod add FP_ARMv8 DOTPROD
565 option predres add predres
574 option simd add FP_ARMv8 NEON
575 option fp16 add fp16 FP_ARMv8 NEON
576 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
577 option crypto add FP_ARMv8 CRYPTO
578 option nocrypto remove ALL_CRYPTO
579 option nofp remove ALL_FP
580 option dotprod add FP_ARMv8 DOTPROD
582 option predres add predres
591 option simd add FP_ARMv8 DOTPROD
592 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
593 option crypto add FP_ARMv8 CRYPTO DOTPROD
594 option nocrypto remove ALL_CRYPTO
595 option nofp remove ALL_FP
597 option predres add predres
606 option simd add FP_ARMv8 DOTPROD
607 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
608 option crypto add FP_ARMv8 CRYPTO DOTPROD
609 option nocrypto remove ALL_CRYPTO
610 option nofp remove ALL_FP
613 begin arch armv8-m.base
618 end arch armv8-m.base
620 begin arch armv8-m.main
626 option dsp add armv7em
627 # fp => FPv5-sp-d16; fp.dp => FPv5-d16
629 option fp.dp add FPv5 FP_DBL
630 option nofp remove ALL_FP
631 option nodsp remove armv7em
632 end arch armv8-m.main
641 # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision
642 # note: no fp option for fp-armv8 (d16) + double precision at the moment
643 option fp.sp add FPv5
644 option simd add FP_ARMv8 NEON
645 option crypto add FP_ARMv8 CRYPTO
646 option nocrypto remove ALL_CRYPTO
647 option nofp remove ALL_FP
652 tune flags LDSCHED STRONG XSCALE
654 isa ARMv5te xscale iwmmxt
659 tune flags LDSCHED STRONG XSCALE
661 isa ARMv5te xscale iwmmxt iwmmxt2
667 # [cname <c-compatible-name>]
669 # [tune for <cpu-name>]
670 # [tune flags <list>]
671 # architecture <name>
672 # [isa <additional-isa-flags-list>]
673 # [option <name> add|remove <isa-list>]*
674 # [optalias <name> <optname>]*
676 # [vendor <vendor-id>
677 # [part <part-id> [minrev [maxrev]]]
680 # If omitted, cname is formed from transforming the cpuname to convert
681 # non-valid punctuation characters to '_'.
682 # Any number of alias names may be specified for a CPU. If the name starts
683 # with a '!' then it will be recognized as a valid name, but will not
684 # be printed in any help text listing permitted CPUs.
685 # If specified, tune for specifies a CPU target to use for tuning this core.
686 # isa flags are appended to those defined by the architecture.
687 # Each add option must have a distinct feature set and each remove
688 # option must similarly have a distinct feature set. Option aliases can be
689 # added with the optalias statement.
690 # Vendor, part and revision information is used for native CPU and architecture
691 # detection. All values must be in hex (lower case) with the leading '0x'
692 # omitted. For example the cortex-a9 will have vendor 41 and part c09.
693 # Revision information is used to match a subrange of part
694 # revisions: minrev <= detected <= maxrev.
695 # If a minrev or maxrev are omitted then minrev defaults to zero and maxrev
697 # Revision information is not implemented yet; no part uses it.
699 # V4 Architecture Processors
713 alias strongarm110 !strongarm1100 !strongarm1110
714 tune flags LDSCHED STRONG
732 # V4T Architecture Processors
741 alias arm720t arm740t
760 alias arm920 arm922t arm940t ep9312
767 # V5T Architecture Processors
768 # These used VFPv1 which isn't supported by GCC
777 # V5TE Architecture Processors
779 alias arm946e-s arm966e-s arm968e-s
781 architecture armv5te+fp
782 option nofp remove ALL_FP
787 alias arm1020e arm1022e
789 architecture armv5te+fp
790 option nofp remove ALL_FP
795 tune flags LDSCHED XSCALE
802 tune flags LDSCHED XSCALE
808 tune flags LDSCHED XSCALE
838 # V5TEJ Architecture Processors
842 architecture armv5tej+fp
843 option nofp remove ALL_FP
849 begin cpu arm1026ej-s
852 architecture armv5tej+fp
853 option nofp remove ALL_FP
860 # V6 Architecture Processors
868 begin cpu arm1136jf-s
871 architecture armv6j+fp
877 begin cpu arm1176jz-s
884 begin cpu arm1176jzf-s
887 architecture armv6kz+fp
893 begin cpu mpcorenovfp
901 architecture armv6k+fp
907 begin cpu arm1156t2-s
914 begin cpu arm1156t2f-s
917 architecture armv6t2+fp
924 # V6M Architecture Processors
928 architecture armv6s-m
937 architecture armv6s-m
943 begin cpu cortex-m0plus
946 architecture armv6s-m
948 end cpu cortex-m0plus
951 # V6M Architecture Processors for small-multiply implementations.
952 begin cpu cortex-m1.small-multiply
953 cname cortexm1smallmultiply
955 tune flags LDSCHED SMALLMUL
956 architecture armv6s-m
958 end cpu cortex-m1.small-multiply
960 begin cpu cortex-m0.small-multiply
961 cname cortexm0smallmultiply
963 tune flags LDSCHED SMALLMUL
964 architecture armv6s-m
966 end cpu cortex-m0.small-multiply
968 begin cpu cortex-m0plus.small-multiply
969 cname cortexm0plussmallmultiply
970 tune for cortex-m0plus
971 tune flags LDSCHED SMALLMUL
972 architecture armv6s-m
974 end cpu cortex-m0plus.small-multiply
977 # V7 Architecture Processors
978 begin cpu generic-armv7-a
981 architecture armv7-a+fp
984 option vfpv3-d16 add VFPv3 FP_DBL
985 option vfpv3 add VFPv3 FP_D32
986 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
987 option vfpv3-fp16 add VFPv3 FP_D32 fp16conv
988 option vfpv4-d16 add VFPv4 FP_DBL
989 option vfpv4 add VFPv4 FP_D32
990 option simd add VFPv3 NEON
992 optalias neon-vfpv3 simd
993 option neon-fp16 add VFPv3 NEON fp16conv
994 option neon-vfpv4 add VFPv4 NEON
995 option nosimd remove ALL_SIMD
996 option nofp remove ALL_FP
998 end cpu generic-armv7-a
1003 architecture armv7-a+mp+sec+neon-fp16
1004 option nosimd remove ALL_SIMD
1005 option nofp remove ALL_FP
1014 architecture armv7ve+simd
1015 option nosimd remove ALL_SIMD
1016 option nofp remove ALL_FP
1025 architecture armv7-a+sec+simd
1026 option nofp remove ALL_FP
1035 architecture armv7-a+mp+sec+neon-fp16
1036 option nosimd remove ALL_SIMD
1037 option nofp remove ALL_FP
1043 begin cpu cortex-a12
1047 architecture armv7ve+simd
1048 option nofp remove ALL_FP
1054 begin cpu cortex-a15
1057 architecture armv7ve+simd
1058 option nofp remove ALL_FP
1064 begin cpu cortex-a17
1067 architecture armv7ve+simd
1068 option nofp remove ALL_FP
1077 architecture armv7-r
1081 begin cpu cortex-r4f
1084 architecture armv7-r+fp
1093 architecture armv7-r+idiv+fp
1094 option nofp.dp remove FP_DBL
1095 option nofp remove ALL_FP
1104 architecture armv7-r+idiv+vfpv3-d16-fp16
1105 option nofp.dp remove FP_DBL
1106 option nofp remove ALL_FP
1116 architecture armv7-r+idiv+vfpv3-d16-fp16
1117 option nofp.dp remove FP_DBL
1118 option nofp remove ALL_FP
1127 architecture armv7e-m+fp.dp
1128 isa quirk_no_volatile_ce
1129 option nofp.dp remove FP_DBL
1130 option nofp remove ALL_FP
1137 architecture armv7e-m+fp
1138 option nofp remove ALL_FP
1147 architecture armv7-m
1154 begin cpu marvell-pj4
1156 architecture armv7-a+mp+sec+fp
1161 # V7 big.LITTLE implementations
1162 begin cpu cortex-a15.cortex-a7
1163 cname cortexa15cortexa7
1166 architecture armv7ve+simd
1167 option nofp remove ALL_FP
1169 end cpu cortex-a15.cortex-a7
1171 begin cpu cortex-a17.cortex-a7
1172 cname cortexa17cortexa7
1175 architecture armv7ve+simd
1176 option nofp remove ALL_FP
1178 end cpu cortex-a17.cortex-a7
1181 # V8 A-profile Architecture Processors
1182 begin cpu cortex-a32
1186 architecture armv8-a+crc+simd
1187 option crypto add FP_ARMv8 CRYPTO
1188 option nofp remove ALL_FP
1194 begin cpu cortex-a35
1198 architecture armv8-a+crc+simd
1199 option crypto add FP_ARMv8 CRYPTO
1200 option nofp remove ALL_FP
1206 begin cpu cortex-a53
1209 architecture armv8-a+crc+simd
1210 option crypto add FP_ARMv8 CRYPTO
1211 option nofp remove ALL_FP
1217 begin cpu cortex-a57
1220 architecture armv8-a+crc+simd
1221 option crypto add FP_ARMv8 CRYPTO
1227 begin cpu cortex-a72
1231 architecture armv8-a+crc+simd
1232 option crypto add FP_ARMv8 CRYPTO
1238 begin cpu cortex-a73
1242 architecture armv8-a+crc+simd
1243 option crypto add FP_ARMv8 CRYPTO
1252 architecture armv8-a+crc+simd
1253 option crypto add FP_ARMv8 CRYPTO
1259 architecture armv8-a+simd
1260 option crypto add FP_ARMv8 CRYPTO
1264 # V8 A-profile big.LITTLE implementations
1265 begin cpu cortex-a57.cortex-a53
1266 cname cortexa57cortexa53
1269 architecture armv8-a+crc+simd
1270 option crypto add FP_ARMv8 CRYPTO
1272 end cpu cortex-a57.cortex-a53
1274 begin cpu cortex-a72.cortex-a53
1275 cname cortexa72cortexa53
1278 architecture armv8-a+crc+simd
1279 option crypto add FP_ARMv8 CRYPTO
1281 end cpu cortex-a72.cortex-a53
1283 begin cpu cortex-a73.cortex-a35
1284 cname cortexa73cortexa35
1287 architecture armv8-a+crc+simd
1288 option crypto add FP_ARMv8 CRYPTO
1290 end cpu cortex-a73.cortex-a35
1292 begin cpu cortex-a73.cortex-a53
1293 cname cortexa73cortexa53
1296 architecture armv8-a+crc+simd
1297 option crypto add FP_ARMv8 CRYPTO
1299 end cpu cortex-a73.cortex-a53
1302 # ARMv8.2 A-profile Architecture Processors
1303 begin cpu cortex-a55
1307 architecture armv8.2-a+fp16+dotprod
1308 option crypto add FP_ARMv8 CRYPTO
1309 option nofp remove ALL_FP
1315 begin cpu cortex-a75
1319 architecture armv8.2-a+fp16+dotprod
1320 option crypto add FP_ARMv8 CRYPTO
1326 begin cpu cortex-a76
1330 architecture armv8.2-a+fp16+dotprod
1331 option crypto add FP_ARMv8 CRYPTO
1337 begin cpu cortex-a76ae
1341 architecture armv8.2-a+fp16+dotprod
1342 option crypto add FP_ARMv8 CRYPTO
1346 end cpu cortex-a76ae
1348 begin cpu cortex-a77
1352 architecture armv8.2-a+fp16+dotprod
1353 option crypto add FP_ARMv8 CRYPTO
1359 begin cpu neoverse-n1
1364 architecture armv8.2-a+fp16+dotprod
1365 option crypto add FP_ARMv8 CRYPTO
1371 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
1372 begin cpu cortex-a75.cortex-a55
1373 cname cortexa75cortexa55
1376 architecture armv8.2-a+fp16+dotprod
1377 option crypto add FP_ARMv8 CRYPTO
1379 end cpu cortex-a75.cortex-a55
1381 begin cpu cortex-a76.cortex-a55
1382 cname cortexa76cortexa55
1385 architecture armv8.2-a+fp16+dotprod
1386 option crypto add FP_ARMv8 CRYPTO
1388 end cpu cortex-a76.cortex-a55
1390 # V8 M-profile implementations.
1391 begin cpu cortex-m23
1394 architecture armv8-m.base
1398 begin cpu cortex-m33
1401 architecture armv8-m.main+dsp+fp
1402 option nofp remove ALL_FP
1403 option nodsp remove armv7em
1407 begin cpu cortex-m35p
1410 architecture armv8-m.main+dsp+fp
1411 option nofp remove ALL_FP
1412 option nodsp remove armv7em
1416 # V8 R-profile implementations.
1417 begin cpu cortex-r52
1420 architecture armv8-r+crc+simd
1421 option nofp.dp remove FP_DBL ALL_SIMD
1430 # isa <isa-flags-list>
1445 begin fpu vfpv3-fp16
1446 isa VFPv3 FP_D32 fp16conv
1453 begin fpu vfpv3-d16-fp16
1454 isa VFPv3 FP_DBL fp16conv
1455 end fpu vfpv3-d16-fp16
1461 begin fpu vfpv3xd-fp16
1463 end fpu vfpv3xd-fp16
1469 begin fpu neon-vfpv3
1474 isa VFPv3 NEON fp16conv
1481 begin fpu neon-vfpv4
1489 begin fpu fpv4-sp-d16
1493 begin fpu fpv5-sp-d16
1505 begin fpu neon-fp-armv8
1507 end fpu neon-fp-armv8
1509 begin fpu crypto-neon-fp-armv8
1511 end fpu crypto-neon-fp-armv8
1513 # Compatibility aliases.