1 # CPU, FPU and architecture specifications for ARM.
3 # Copyright (C) 2011-2019 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 ALL_SIMD_INTERNAL dotprod fp16fml
218 # List of all FPU bits to strip out if -mfpu is used to override the
219 # default. fp16 is deliberately missing from this list.
220 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_FP fp16 ALL_FPU_INTERNAL
226 define fgroup ARMv4 armv4 notm
227 define fgroup ARMv4t ARMv4 thumb
228 define fgroup ARMv5t ARMv4t armv5t
229 define fgroup ARMv5te ARMv5t armv5te
230 define fgroup ARMv5tej ARMv5te
231 define fgroup ARMv6 ARMv5te armv6 be8
232 define fgroup ARMv6j ARMv6
233 define fgroup ARMv6k ARMv6 armv6k
234 define fgroup ARMv6z ARMv6
235 define fgroup ARMv6kz ARMv6k quirk_armv6kz
236 define fgroup ARMv6zk ARMv6k
237 define fgroup ARMv6t2 ARMv6 thumb2
238 # This is suspect. ARMv6-m doesn't really pull in any useful features
239 # from ARMv5* or ARMv6.
240 define fgroup ARMv6m armv4 thumb armv5t armv5te armv6 be8
241 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
242 # integer SIMD instructions that are in ARMv6T2. */
243 define fgroup ARMv7 ARMv6m thumb2 armv7
245 define fgroup ARMv7a ARMv7 notm armv6k
246 define fgroup ARMv7ve ARMv7a adiv tdiv lpae mp sec
247 define fgroup ARMv7r ARMv7a tdiv
248 define fgroup ARMv7m ARMv7 tdiv
249 define fgroup ARMv7em ARMv7m armv7em
250 define fgroup ARMv8a ARMv7ve armv8
251 define fgroup ARMv8_1a ARMv8a crc32 armv8_1
252 define fgroup ARMv8_2a ARMv8_1a armv8_2
253 define fgroup ARMv8_3a ARMv8_2a armv8_3
254 define fgroup ARMv8_4a ARMv8_3a armv8_4
255 define fgroup ARMv8_5a ARMv8_4a armv8_5 sb predres
256 define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
257 define fgroup ARMv8m_main ARMv7m armv8 cmse
258 define fgroup ARMv8r ARMv8a
260 # Useful combinations.
261 define fgroup VFPv2 vfpv2
262 define fgroup VFPv3 VFPv2 vfpv3
263 define fgroup VFPv4 VFPv3 vfpv4 fp16conv
264 define fgroup FPv5 VFPv4 fpv5
266 define fgroup FP_DBL fp_dbl
267 define fgroup FP_D32 FP_DBL fp_d32
268 define fgroup FP_ARMv8 FPv5 FP_D32
269 define fgroup NEON FP_D32 neon
270 define fgroup CRYPTO NEON crypto
271 define fgroup DOTPROD NEON dotprod
273 # List of all quirk bits to strip out when comparing CPU features with
275 # xscale isn't really a 'quirk', but it isn't an architecture either and we
276 # need to ignore it for matching purposes.
277 define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale
279 # Architecture entries
283 # [tune flags <list>]
286 # isa <isa-flags-list>
316 option fp add VFPv2 FP_DBL
318 option nofp remove ALL_FP
326 option fp add VFPv2 FP_DBL
328 option nofp remove ALL_FP
336 option fp add VFPv2 FP_DBL
338 option nofp remove ALL_FP
346 option fp add VFPv2 FP_DBL
348 option nofp remove ALL_FP
356 option fp add VFPv2 FP_DBL
358 option nofp remove ALL_FP
366 option fp add VFPv2 FP_DBL
368 option nofp remove ALL_FP
376 option fp add VFPv2 FP_DBL
378 option nofp remove ALL_FP
386 option fp add VFPv2 FP_DBL
388 option nofp remove ALL_FP
396 option fp add VFPv2 FP_DBL
398 option nofp remove ALL_FP
408 # This is now equivalent to armv6-m, but we keep it because some
409 # versions of GAS still distinguish between the two.
422 # fp => VFPv3-d16 (only useful for the A+R profile subset).
423 option fp add VFPv3 FP_DBL
424 optalias vfpv3-d16 fp
425 option nofp remove ALL_FP
436 # fp => VFPv3-d16, simd => neon-vfpv3
437 option fp add VFPv3 FP_DBL
438 optalias vfpv3-d16 fp
439 option vfpv3 add VFPv3 FP_D32
440 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
441 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
442 option vfpv4-d16 add VFPv4 FP_DBL
443 option vfpv4 add VFPv4 FP_D32
444 option simd add VFPv3 NEON
446 optalias neon-vfpv3 simd
447 option neon-fp16 add VFPv3 NEON fp16conv
448 option neon-vfpv4 add VFPv4 NEON
449 option nosimd remove ALL_SIMD
450 option nofp remove ALL_FP
459 # fp => VFPv4-d16, simd => neon-vfpv4
460 option vfpv3-d16 add VFPv3 FP_DBL
461 option vfpv3 add VFPv3 FP_D32
462 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
463 option vfpv3-fp16 add VFPv3 FP_DBL FP_D32 fp16conv
464 option fp add VFPv4 FP_DBL
465 optalias vfpv4-d16 fp
466 option vfpv4 add VFPv4 FP_D32
467 option neon add VFPv3 NEON
468 optalias neon-vfpv3 neon
469 option neon-fp16 add VFPv3 NEON fp16conv
470 option simd add VFPv4 NEON
471 optalias neon-vfpv4 simd
472 option nosimd remove ALL_SIMD
473 option nofp remove ALL_FP
482 # ARMv7-r uses VFPv3-d16
483 option fp.sp add VFPv3
484 optalias vfpv3xd fp.sp
485 option fp add VFPv3 FP_DBL
486 optalias vfpv3-d16 fp
487 option vfpv3xd-fp16 add VFPv3 fp16conv
488 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
490 option nofp remove ALL_FP
491 option noidiv remove adiv
500 # In theory FP is permitted in v7-m, but in practice no implementations exist.
501 # leave it out for now.
510 # fp => VFPv4-sp-d16; fpv5 => FPv5-sp-d16; fp.dp => FPv5-d16
512 optalias vfpv4-sp-d16 fp
514 option fp.dp add FPv5 FP_DBL
515 optalias fpv5-d16 fp.dp
516 option nofp remove ALL_FP
526 option simd add FP_ARMv8 NEON
527 option crypto add FP_ARMv8 CRYPTO
528 option nocrypto remove ALL_CRYPTO
529 option nofp remove ALL_FP
531 option predres add predres
540 option simd add FP_ARMv8 NEON
541 option crypto add FP_ARMv8 CRYPTO
542 option nocrypto remove ALL_CRYPTO
543 option nofp remove ALL_FP
545 option predres add predres
554 option simd add FP_ARMv8 NEON
555 option fp16 add fp16 FP_ARMv8 NEON
556 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
557 option crypto add FP_ARMv8 CRYPTO
558 option nocrypto remove ALL_CRYPTO
559 option nofp remove ALL_FP
560 option dotprod add FP_ARMv8 DOTPROD
562 option predres add predres
571 option simd add FP_ARMv8 NEON
572 option fp16 add fp16 FP_ARMv8 NEON
573 option fp16fml add fp16fml fp16 FP_ARMv8 NEON
574 option crypto add FP_ARMv8 CRYPTO
575 option nocrypto remove ALL_CRYPTO
576 option nofp remove ALL_FP
577 option dotprod add FP_ARMv8 DOTPROD
579 option predres add predres
588 option simd add FP_ARMv8 DOTPROD
589 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
590 option crypto add FP_ARMv8 CRYPTO DOTPROD
591 option nocrypto remove ALL_CRYPTO
592 option nofp remove ALL_FP
594 option predres add predres
603 option simd add FP_ARMv8 DOTPROD
604 option fp16 add fp16 fp16fml FP_ARMv8 DOTPROD
605 option crypto add FP_ARMv8 CRYPTO DOTPROD
606 option nocrypto remove ALL_CRYPTO
607 option nofp remove ALL_FP
610 begin arch armv8-m.base
615 end arch armv8-m.base
617 begin arch armv8-m.main
623 option dsp add armv7em
624 # fp => FPv5-sp-d16; fp.dp => FPv5-d16
626 option fp.dp add FPv5 FP_DBL
627 option nofp remove ALL_FP
628 option nodsp remove armv7em
629 end arch armv8-m.main
638 # fp.sp => fp-armv8 (d16); simd => simd + fp-armv8 + d32 + double precision
639 # note: no fp option for fp-armv8 (d16) + double precision at the moment
640 option fp.sp add FPv5
641 option simd add FP_ARMv8 NEON
642 option crypto add FP_ARMv8 CRYPTO
643 option nocrypto remove ALL_CRYPTO
644 option nofp remove ALL_FP
649 tune flags LDSCHED STRONG XSCALE
651 isa ARMv5te xscale iwmmxt
656 tune flags LDSCHED STRONG XSCALE
658 isa ARMv5te xscale iwmmxt iwmmxt2
664 # [cname <c-compatible-name>]
666 # [tune for <cpu-name>]
667 # [tune flags <list>]
668 # architecture <name>
669 # [isa <additional-isa-flags-list>]
670 # [option <name> add|remove <isa-list>]*
671 # [optalias <name> <optname>]*
673 # [vendor <vendor-id>
674 # [part <part-id> [minrev [maxrev]]]
677 # If omitted, cname is formed from transforming the cpuname to convert
678 # non-valid punctuation characters to '_'.
679 # Any number of alias names may be specified for a CPU. If the name starts
680 # with a '!' then it will be recognized as a valid name, but will not
681 # be printed in any help text listing permitted CPUs.
682 # If specified, tune for specifies a CPU target to use for tuning this core.
683 # isa flags are appended to those defined by the architecture.
684 # Each add option must have a distinct feature set and each remove
685 # option must similarly have a distinct feature set. Option aliases can be
686 # added with the optalias statement.
687 # Vendor, part and revision information is used for native CPU and architecture
688 # detection. All values must be in hex (lower case) with the leading '0x'
689 # omitted. For example the cortex-a9 will have vendor 41 and part c09.
690 # Revision information is used to match a subrange of part
691 # revisions: minrev <= detected <= maxrev.
692 # If a minrev or maxrev are omitted then minrev defaults to zero and maxrev
694 # Revision information is not implemented yet; no part uses it.
696 # V4 Architecture Processors
710 alias strongarm110 !strongarm1100 !strongarm1110
711 tune flags LDSCHED STRONG
729 # V4T Architecture Processors
738 alias arm720t arm740t
757 alias arm920 arm922t arm940t ep9312
764 # V5T Architecture Processors
765 # These used VFPv1 which isn't supported by GCC
774 # V5TE Architecture Processors
776 alias arm946e-s arm966e-s arm968e-s
778 architecture armv5te+fp
779 option nofp remove ALL_FP
784 alias arm1020e arm1022e
786 architecture armv5te+fp
787 option nofp remove ALL_FP
792 tune flags LDSCHED XSCALE
799 tune flags LDSCHED XSCALE
805 tune flags LDSCHED XSCALE
835 # V5TEJ Architecture Processors
839 architecture armv5tej+fp
840 option nofp remove ALL_FP
846 begin cpu arm1026ej-s
849 architecture armv5tej+fp
850 option nofp remove ALL_FP
857 # V6 Architecture Processors
865 begin cpu arm1136jf-s
868 architecture armv6j+fp
874 begin cpu arm1176jz-s
881 begin cpu arm1176jzf-s
884 architecture armv6kz+fp
890 begin cpu mpcorenovfp
898 architecture armv6k+fp
904 begin cpu arm1156t2-s
911 begin cpu arm1156t2f-s
914 architecture armv6t2+fp
921 # V6M Architecture Processors
925 architecture armv6s-m
934 architecture armv6s-m
940 begin cpu cortex-m0plus
943 architecture armv6s-m
945 end cpu cortex-m0plus
948 # V6M Architecture Processors for small-multiply implementations.
949 begin cpu cortex-m1.small-multiply
950 cname cortexm1smallmultiply
952 tune flags LDSCHED SMALLMUL
953 architecture armv6s-m
955 end cpu cortex-m1.small-multiply
957 begin cpu cortex-m0.small-multiply
958 cname cortexm0smallmultiply
960 tune flags LDSCHED SMALLMUL
961 architecture armv6s-m
963 end cpu cortex-m0.small-multiply
965 begin cpu cortex-m0plus.small-multiply
966 cname cortexm0plussmallmultiply
967 tune for cortex-m0plus
968 tune flags LDSCHED SMALLMUL
969 architecture armv6s-m
971 end cpu cortex-m0plus.small-multiply
974 # V7 Architecture Processors
975 begin cpu generic-armv7-a
978 architecture armv7-a+fp
981 option vfpv3-d16 add VFPv3 FP_DBL
982 option vfpv3 add VFPv3 FP_D32
983 option vfpv3-d16-fp16 add VFPv3 FP_DBL fp16conv
984 option vfpv3-fp16 add VFPv3 FP_D32 fp16conv
985 option vfpv4-d16 add VFPv4 FP_DBL
986 option vfpv4 add VFPv4 FP_D32
987 option simd add VFPv3 NEON
989 optalias neon-vfpv3 simd
990 option neon-fp16 add VFPv3 NEON fp16conv
991 option neon-vfpv4 add VFPv4 NEON
992 option nosimd remove ALL_SIMD
993 option nofp remove ALL_FP
995 end cpu generic-armv7-a
1000 architecture armv7-a+mp+sec+neon-fp16
1001 option nosimd remove ALL_SIMD
1002 option nofp remove ALL_FP
1011 architecture armv7ve+simd
1012 option nosimd remove ALL_SIMD
1013 option nofp remove ALL_FP
1022 architecture armv7-a+sec+simd
1023 option nofp remove ALL_FP
1032 architecture armv7-a+mp+sec+neon-fp16
1033 option nosimd remove ALL_SIMD
1034 option nofp remove ALL_FP
1040 begin cpu cortex-a12
1044 architecture armv7ve+simd
1045 option nofp remove ALL_FP
1051 begin cpu cortex-a15
1054 architecture armv7ve+simd
1055 option nofp remove ALL_FP
1061 begin cpu cortex-a17
1064 architecture armv7ve+simd
1065 option nofp remove ALL_FP
1074 architecture armv7-r
1078 begin cpu cortex-r4f
1081 architecture armv7-r+fp
1090 architecture armv7-r+idiv+fp
1091 option nofp.dp remove FP_DBL
1092 option nofp remove ALL_FP
1101 architecture armv7-r+idiv+vfpv3-d16-fp16
1102 option nofp.dp remove FP_DBL
1103 option nofp remove ALL_FP
1113 architecture armv7-r+idiv+vfpv3-d16-fp16
1114 option nofp.dp remove FP_DBL
1115 option nofp remove ALL_FP
1124 architecture armv7e-m+fp.dp
1125 isa quirk_no_volatile_ce
1126 option nofp.dp remove FP_DBL
1127 option nofp remove ALL_FP
1134 architecture armv7e-m+fp
1135 option nofp remove ALL_FP
1144 architecture armv7-m
1151 begin cpu marvell-pj4
1153 architecture armv7-a+mp+sec
1158 # V7 big.LITTLE implementations
1159 begin cpu cortex-a15.cortex-a7
1160 cname cortexa15cortexa7
1163 architecture armv7ve+simd
1164 option nofp remove ALL_FP
1166 end cpu cortex-a15.cortex-a7
1168 begin cpu cortex-a17.cortex-a7
1169 cname cortexa17cortexa7
1172 architecture armv7ve+simd
1173 option nofp remove ALL_FP
1175 end cpu cortex-a17.cortex-a7
1178 # V8 A-profile Architecture Processors
1179 begin cpu cortex-a32
1183 architecture armv8-a+crc+simd
1184 option crypto add FP_ARMv8 CRYPTO
1185 option nofp remove ALL_FP
1191 begin cpu cortex-a35
1195 architecture armv8-a+crc+simd
1196 option crypto add FP_ARMv8 CRYPTO
1197 option nofp remove ALL_FP
1203 begin cpu cortex-a53
1206 architecture armv8-a+crc+simd
1207 option crypto add FP_ARMv8 CRYPTO
1208 option nofp remove ALL_FP
1214 begin cpu cortex-a57
1217 architecture armv8-a+crc+simd
1218 option crypto add FP_ARMv8 CRYPTO
1224 begin cpu cortex-a72
1228 architecture armv8-a+crc+simd
1229 option crypto add FP_ARMv8 CRYPTO
1235 begin cpu cortex-a73
1239 architecture armv8-a+crc+simd
1240 option crypto add FP_ARMv8 CRYPTO
1249 architecture armv8-a+crc+simd
1250 option crypto add FP_ARMv8 CRYPTO
1256 architecture armv8-a+simd
1257 option crypto add FP_ARMv8 CRYPTO
1261 # V8 A-profile big.LITTLE implementations
1262 begin cpu cortex-a57.cortex-a53
1263 cname cortexa57cortexa53
1266 architecture armv8-a+crc+simd
1267 option crypto add FP_ARMv8 CRYPTO
1269 end cpu cortex-a57.cortex-a53
1271 begin cpu cortex-a72.cortex-a53
1272 cname cortexa72cortexa53
1275 architecture armv8-a+crc+simd
1276 option crypto add FP_ARMv8 CRYPTO
1278 end cpu cortex-a72.cortex-a53
1280 begin cpu cortex-a73.cortex-a35
1281 cname cortexa73cortexa35
1284 architecture armv8-a+crc+simd
1285 option crypto add FP_ARMv8 CRYPTO
1287 end cpu cortex-a73.cortex-a35
1289 begin cpu cortex-a73.cortex-a53
1290 cname cortexa73cortexa53
1293 architecture armv8-a+crc+simd
1294 option crypto add FP_ARMv8 CRYPTO
1296 end cpu cortex-a73.cortex-a53
1299 # ARMv8.2 A-profile Architecture Processors
1300 begin cpu cortex-a55
1304 architecture armv8.2-a+fp16+dotprod+simd
1305 option crypto add FP_ARMv8 CRYPTO
1306 option nofp remove ALL_FP
1312 begin cpu cortex-a75
1316 architecture armv8.2-a+fp16+dotprod+simd
1317 option crypto add FP_ARMv8 CRYPTO
1323 begin cpu cortex-a76
1327 architecture armv8.2-a+fp16+dotprod+simd
1328 option crypto add FP_ARMv8 CRYPTO
1334 begin cpu neoverse-n1
1339 architecture armv8.2-a+fp16+dotprod+simd
1340 option crypto add FP_ARMv8 CRYPTO
1346 # ARMv8.2 A-profile ARM DynamIQ big.LITTLE implementations
1347 begin cpu cortex-a75.cortex-a55
1348 cname cortexa75cortexa55
1351 architecture armv8.2-a+fp16+dotprod+simd
1352 option crypto add FP_ARMv8 CRYPTO
1354 end cpu cortex-a75.cortex-a55
1356 begin cpu cortex-a76.cortex-a55
1357 cname cortexa76cortexa55
1360 architecture armv8.2-a+fp16+dotprod+simd
1361 option crypto add FP_ARMv8 CRYPTO
1363 end cpu cortex-a76.cortex-a55
1365 # V8 M-profile implementations.
1366 begin cpu cortex-m23
1369 architecture armv8-m.base
1373 begin cpu cortex-m33
1376 architecture armv8-m.main+dsp+fp
1377 option nofp remove ALL_FP
1378 option nodsp remove armv7em
1382 # V8 R-profile implementations.
1383 begin cpu cortex-r52
1386 architecture armv8-r+crc+simd
1387 option nofp.dp remove FP_DBL ALL_SIMD
1396 # isa <isa-flags-list>
1411 begin fpu vfpv3-fp16
1412 isa VFPv3 FP_D32 fp16conv
1419 begin fpu vfpv3-d16-fp16
1420 isa VFPv3 FP_DBL fp16conv
1421 end fpu vfpv3-d16-fp16
1427 begin fpu vfpv3xd-fp16
1429 end fpu vfpv3xd-fp16
1435 begin fpu neon-vfpv3
1440 isa VFPv3 NEON fp16conv
1447 begin fpu neon-vfpv4
1455 begin fpu fpv4-sp-d16
1459 begin fpu fpv5-sp-d16
1471 begin fpu neon-fp-armv8
1473 end fpu neon-fp-armv8
1475 begin fpu crypto-neon-fp-armv8
1477 end fpu crypto-neon-fp-armv8
1479 # Compatibility aliases.