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