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