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