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