1 /* This file is automatically generated. DO NOT EDIT! */ 2 /* Generated from: NetBSD: mknative-gcc,v 1.102 2019/10/16 06:57:24 mrg Exp */ 3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp */ 4 5 /* -*- buffer-read-only: t -*- 6 Generated automatically by parsecpu.awk from arm-cpus.in. 7 Do not edit. 8 9 Copyright (C) 2011-2018 Free Software Foundation, Inc. 10 11 This file is part of GCC. 12 13 GCC is free software; you can redistribute it and/or modify 14 it under the terms of the GNU General Public License as 15 published by the Free Software Foundation; either version 3, 16 or (at your option) any later version. 17 18 GCC is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 GNU General Public License for more details. 22 23 You should have received a copy of the GNU General Public 24 License along with GCC; see the file COPYING3. If not see 25 <http://www.gnu.org/licenses/>. */ 26 27 enum isa_feature { 28 isa_nobit = 0, 29 isa_bit_vfpv2, 30 isa_bit_adiv, 31 isa_bit_vfpv3, 32 isa_bit_vfpv4, 33 isa_bit_armv5e, 34 isa_bit_mode26, 35 isa_bit_smallmul, 36 isa_bit_iwmmxt, 37 isa_bit_fp16fml, 38 isa_bit_xscale, 39 isa_bit_thumb, 40 isa_bit_quirk_cm3_ldrd, 41 isa_bit_be8, 42 isa_bit_dotprod, 43 isa_bit_lpae, 44 isa_bit_armv4, 45 isa_bit_armv5, 46 isa_bit_quirk_armv6kz, 47 isa_bit_neon, 48 isa_bit_armv6, 49 isa_bit_crc32, 50 isa_bit_armv7, 51 isa_bit_armv7em, 52 isa_bit_cmse, 53 isa_bit_armv8, 54 isa_bit_fpv5, 55 isa_bit_tdiv, 56 isa_bit_quirk_no_volatile_ce, 57 isa_bit_fp_d32, 58 isa_bit_mode32, 59 isa_bit_thumb2, 60 isa_bit_iwmmxt2, 61 isa_bit_notm, 62 isa_bit_fp16, 63 isa_bit_armv8_1, 64 isa_bit_fp16conv, 65 isa_bit_armv8_2, 66 isa_bit_armv6k, 67 isa_bit_armv8_3, 68 isa_bit_armv8_4, 69 isa_bit_mp, 70 isa_bit_crypto, 71 isa_bit_fp_dbl, 72 isa_bit_sec, 73 isa_bit_armv3m, 74 isa_num_bits 75 }; 76 77 #define ISA_CRYPTO \ 78 isa_bit_crypto, \ 79 isa_bit_neon, \ 80 isa_bit_fp_dbl, \ 81 isa_bit_fp_d32 82 83 #define ISA_ARMv8_1a \ 84 isa_bit_crc32, \ 85 isa_bit_be8, \ 86 isa_bit_lpae, \ 87 isa_bit_notm, \ 88 isa_bit_thumb, \ 89 isa_bit_adiv, \ 90 isa_bit_armv8_1, \ 91 isa_bit_sec, \ 92 isa_bit_armv3m, \ 93 isa_bit_armv5e, \ 94 isa_bit_armv6k, \ 95 isa_bit_thumb2, \ 96 isa_bit_mp, \ 97 isa_bit_armv4, \ 98 isa_bit_armv5, \ 99 isa_bit_armv6, \ 100 isa_bit_armv7, \ 101 isa_bit_armv8, \ 102 isa_bit_tdiv, \ 103 isa_bit_mode32 104 105 #define ISA_ARMv5t \ 106 isa_bit_mode32, \ 107 isa_bit_thumb, \ 108 isa_bit_armv3m, \ 109 isa_bit_armv4, \ 110 isa_bit_armv5, \ 111 isa_bit_notm 112 113 #define ISA_ALL_CRYPTO \ 114 isa_bit_crypto 115 116 #define ISA_DOTPROD \ 117 isa_bit_neon, \ 118 isa_bit_dotprod, \ 119 isa_bit_fp_dbl, \ 120 isa_bit_fp_d32 121 122 #define ISA_ARMv7m \ 123 isa_bit_thumb, \ 124 isa_bit_be8, \ 125 isa_bit_armv4, \ 126 isa_bit_armv5, \ 127 isa_bit_armv6, \ 128 isa_bit_armv7, \ 129 isa_bit_armv3m, \ 130 isa_bit_thumb2, \ 131 isa_bit_armv5e, \ 132 isa_bit_mode32, \ 133 isa_bit_tdiv 134 135 #define ISA_ARMv8m_main \ 136 isa_bit_armv3m, \ 137 isa_bit_cmse, \ 138 isa_bit_armv5e, \ 139 isa_bit_thumb2, \ 140 isa_bit_thumb, \ 141 isa_bit_be8, \ 142 isa_bit_mode32, \ 143 isa_bit_armv4, \ 144 isa_bit_armv5, \ 145 isa_bit_armv6, \ 146 isa_bit_armv7, \ 147 isa_bit_armv8, \ 148 isa_bit_tdiv 149 150 #define ISA_ARMv8m_base \ 151 isa_bit_tdiv, \ 152 isa_bit_cmse, \ 153 isa_bit_thumb, \ 154 isa_bit_armv3m, \ 155 isa_bit_armv5e, \ 156 isa_bit_be8, \ 157 isa_bit_armv4, \ 158 isa_bit_armv5, \ 159 isa_bit_armv6, \ 160 isa_bit_armv8, \ 161 isa_bit_mode32 162 163 #define ISA_FPv5 \ 164 isa_bit_fp16conv, \ 165 isa_bit_fpv5, \ 166 isa_bit_vfpv2, \ 167 isa_bit_vfpv3, \ 168 isa_bit_vfpv4 169 170 #define ISA_ARMv7r \ 171 isa_bit_tdiv, \ 172 isa_bit_be8, \ 173 isa_bit_mode32, \ 174 isa_bit_notm, \ 175 isa_bit_armv4, \ 176 isa_bit_armv5, \ 177 isa_bit_armv6, \ 178 isa_bit_armv7, \ 179 isa_bit_armv3m, \ 180 isa_bit_thumb2, \ 181 isa_bit_thumb, \ 182 isa_bit_armv5e, \ 183 isa_bit_armv6k 184 185 #define ISA_ARMv8_3a \ 186 isa_bit_thumb, \ 187 isa_bit_tdiv, \ 188 isa_bit_lpae, \ 189 isa_bit_notm, \ 190 isa_bit_armv3m, \ 191 isa_bit_sec, \ 192 isa_bit_armv5e, \ 193 isa_bit_armv6k, \ 194 isa_bit_thumb2, \ 195 isa_bit_armv4, \ 196 isa_bit_armv5, \ 197 isa_bit_armv6, \ 198 isa_bit_armv7, \ 199 isa_bit_armv8, \ 200 isa_bit_adiv, \ 201 isa_bit_mp, \ 202 isa_bit_armv8_1, \ 203 isa_bit_armv8_2, \ 204 isa_bit_armv8_3, \ 205 isa_bit_crc32, \ 206 isa_bit_mode32, \ 207 isa_bit_be8 208 209 #define ISA_VFPv2 \ 210 isa_bit_vfpv2 211 212 #define ISA_FP_DBL \ 213 isa_bit_fp_dbl 214 215 #define ISA_VFPv3 \ 216 isa_bit_vfpv2, \ 217 isa_bit_vfpv3 218 219 #define ISA_VFPv4 \ 220 isa_bit_fp16conv, \ 221 isa_bit_vfpv2, \ 222 isa_bit_vfpv3, \ 223 isa_bit_vfpv4 224 225 #define ISA_ARMv7ve \ 226 isa_bit_mode32, \ 227 isa_bit_armv4, \ 228 isa_bit_armv5, \ 229 isa_bit_armv6, \ 230 isa_bit_armv7, \ 231 isa_bit_tdiv, \ 232 isa_bit_mp, \ 233 isa_bit_lpae, \ 234 isa_bit_be8, \ 235 isa_bit_notm, \ 236 isa_bit_adiv, \ 237 isa_bit_armv3m, \ 238 isa_bit_thumb, \ 239 isa_bit_thumb2, \ 240 isa_bit_armv5e, \ 241 isa_bit_armv6k, \ 242 isa_bit_sec 243 244 #define ISA_ARMv4t \ 245 isa_bit_notm, \ 246 isa_bit_thumb, \ 247 isa_bit_armv3m, \ 248 isa_bit_armv4, \ 249 isa_bit_mode32 250 251 #define ISA_ARMv6j \ 252 isa_bit_notm, \ 253 isa_bit_mode32, \ 254 isa_bit_be8, \ 255 isa_bit_thumb, \ 256 isa_bit_armv3m, \ 257 isa_bit_armv4, \ 258 isa_bit_armv5, \ 259 isa_bit_armv6, \ 260 isa_bit_armv5e 261 262 #define ISA_ALL_FP \ 263 isa_bit_fp_d32, \ 264 isa_bit_neon, \ 265 isa_bit_vfpv2, \ 266 isa_bit_vfpv3, \ 267 isa_bit_vfpv4, \ 268 isa_bit_fpv5, \ 269 isa_bit_fp16conv, \ 270 isa_bit_crypto, \ 271 isa_bit_fp16, \ 272 isa_bit_fp_dbl 273 274 #define ISA_ARMv6k \ 275 isa_bit_thumb, \ 276 isa_bit_mode32, \ 277 isa_bit_armv4, \ 278 isa_bit_armv5, \ 279 isa_bit_armv6, \ 280 isa_bit_notm, \ 281 isa_bit_armv3m, \ 282 isa_bit_armv5e, \ 283 isa_bit_be8, \ 284 isa_bit_armv6k 285 286 #define ISA_FP_D32 \ 287 isa_bit_fp_d32, \ 288 isa_bit_fp_dbl 289 290 #define ISA_ALL_QUIRKS \ 291 isa_bit_quirk_cm3_ldrd, \ 292 isa_bit_xscale, \ 293 isa_bit_quirk_armv6kz, \ 294 isa_bit_quirk_no_volatile_ce 295 296 #define ISA_ARMv8a \ 297 isa_bit_armv5e, \ 298 isa_bit_armv6k, \ 299 isa_bit_thumb2, \ 300 isa_bit_tdiv, \ 301 isa_bit_sec, \ 302 isa_bit_mp, \ 303 isa_bit_lpae, \ 304 isa_bit_notm, \ 305 isa_bit_mode32, \ 306 isa_bit_armv4, \ 307 isa_bit_armv5, \ 308 isa_bit_armv6, \ 309 isa_bit_armv7, \ 310 isa_bit_armv8, \ 311 isa_bit_adiv, \ 312 isa_bit_be8, \ 313 isa_bit_thumb, \ 314 isa_bit_armv3m 315 316 #define ISA_ARMv6m \ 317 isa_bit_thumb, \ 318 isa_bit_armv3m, \ 319 isa_bit_armv5e, \ 320 isa_bit_armv4, \ 321 isa_bit_armv5, \ 322 isa_bit_armv6, \ 323 isa_bit_be8, \ 324 isa_bit_mode32 325 326 #define ISA_ALL_FPU_INTERNAL \ 327 isa_bit_crypto, \ 328 isa_bit_neon, \ 329 isa_bit_fp_dbl, \ 330 isa_bit_fp_d32, \ 331 isa_bit_fp16conv, \ 332 isa_bit_fpv5, \ 333 isa_bit_vfpv2, \ 334 isa_bit_vfpv3, \ 335 isa_bit_vfpv4 336 337 #define ISA_ARMv5tej \ 338 isa_bit_armv5e, \ 339 isa_bit_mode32, \ 340 isa_bit_armv4, \ 341 isa_bit_armv5, \ 342 isa_bit_notm, \ 343 isa_bit_thumb, \ 344 isa_bit_armv3m 345 346 #define ISA_ALL_SIMD \ 347 isa_bit_fp_d32, \ 348 isa_bit_fp16fml, \ 349 isa_bit_neon, \ 350 isa_bit_dotprod, \ 351 isa_bit_crypto 352 353 #define ISA_ARMv8_2a \ 354 isa_bit_mp, \ 355 isa_bit_thumb, \ 356 isa_bit_armv3m, \ 357 isa_bit_be8, \ 358 isa_bit_armv5e, \ 359 isa_bit_tdiv, \ 360 isa_bit_armv6k, \ 361 isa_bit_armv8_1, \ 362 isa_bit_armv8_2, \ 363 isa_bit_thumb2, \ 364 isa_bit_lpae, \ 365 isa_bit_notm, \ 366 isa_bit_armv4, \ 367 isa_bit_armv5, \ 368 isa_bit_armv6, \ 369 isa_bit_armv7, \ 370 isa_bit_armv8, \ 371 isa_bit_mode32, \ 372 isa_bit_sec, \ 373 isa_bit_crc32, \ 374 isa_bit_adiv 375 376 #define ISA_ARMv3m \ 377 isa_bit_armv3m, \ 378 isa_bit_notm, \ 379 isa_bit_mode32 380 381 #define ISA_ARMv2 \ 382 isa_bit_notm 383 384 #define ISA_ARMv3 \ 385 isa_bit_notm, \ 386 isa_bit_mode32 387 388 #define ISA_NEON \ 389 isa_bit_fp_dbl, \ 390 isa_bit_fp_d32, \ 391 isa_bit_neon 392 393 #define ISA_ARMv5te \ 394 isa_bit_thumb, \ 395 isa_bit_armv4, \ 396 isa_bit_notm, \ 397 isa_bit_armv5, \ 398 isa_bit_armv3m, \ 399 isa_bit_armv5e, \ 400 isa_bit_mode32 401 402 #define ISA_ARMv4 \ 403 isa_bit_armv4, \ 404 isa_bit_notm, \ 405 isa_bit_armv3m, \ 406 isa_bit_mode32 407 408 #define ISA_ARMv5 \ 409 isa_bit_armv3m, \ 410 isa_bit_notm, \ 411 isa_bit_mode32, \ 412 isa_bit_armv4, \ 413 isa_bit_armv5 414 415 #define ISA_ARMv6 \ 416 isa_bit_armv3m, \ 417 isa_bit_armv5e, \ 418 isa_bit_armv4, \ 419 isa_bit_armv5, \ 420 isa_bit_armv6, \ 421 isa_bit_mode32, \ 422 isa_bit_be8, \ 423 isa_bit_thumb, \ 424 isa_bit_notm 425 426 #define ISA_ARMv5e \ 427 isa_bit_armv4, \ 428 isa_bit_armv5, \ 429 isa_bit_notm, \ 430 isa_bit_armv3m, \ 431 isa_bit_armv5e, \ 432 isa_bit_mode32 433 434 #define ISA_ARMv7 \ 435 isa_bit_thumb2, \ 436 isa_bit_be8, \ 437 isa_bit_thumb, \ 438 isa_bit_mode32, \ 439 isa_bit_armv4, \ 440 isa_bit_armv5, \ 441 isa_bit_armv6, \ 442 isa_bit_armv7, \ 443 isa_bit_armv3m, \ 444 isa_bit_armv5e 445 446 #define ISA_ARMv6zk \ 447 isa_bit_mode32, \ 448 isa_bit_armv4, \ 449 isa_bit_armv5, \ 450 isa_bit_armv6, \ 451 isa_bit_notm, \ 452 isa_bit_armv3m, \ 453 isa_bit_thumb, \ 454 isa_bit_armv5e, \ 455 isa_bit_armv6k, \ 456 isa_bit_be8 457 458 #define ISA_ARMv6kz \ 459 isa_bit_armv3m, \ 460 isa_bit_armv5e, \ 461 isa_bit_armv6k, \ 462 isa_bit_thumb, \ 463 isa_bit_notm, \ 464 isa_bit_quirk_armv6kz, \ 465 isa_bit_be8, \ 466 isa_bit_mode32, \ 467 isa_bit_armv4, \ 468 isa_bit_armv5, \ 469 isa_bit_armv6 470 471 #define ISA_ARMv6z \ 472 isa_bit_notm, \ 473 isa_bit_armv4, \ 474 isa_bit_armv5, \ 475 isa_bit_armv6, \ 476 isa_bit_mode32, \ 477 isa_bit_thumb, \ 478 isa_bit_armv3m, \ 479 isa_bit_be8, \ 480 isa_bit_armv5e 481 482 #define ISA_ARMv8r \ 483 isa_bit_adiv, \ 484 isa_bit_mode32, \ 485 isa_bit_armv4, \ 486 isa_bit_armv5, \ 487 isa_bit_armv6, \ 488 isa_bit_armv7, \ 489 isa_bit_armv8, \ 490 isa_bit_mp, \ 491 isa_bit_be8, \ 492 isa_bit_tdiv, \ 493 isa_bit_armv3m, \ 494 isa_bit_lpae, \ 495 isa_bit_notm, \ 496 isa_bit_thumb, \ 497 isa_bit_armv5e, \ 498 isa_bit_armv6k, \ 499 isa_bit_thumb2, \ 500 isa_bit_sec 501 502 #define ISA_FP_ARMv8 \ 503 isa_bit_fpv5, \ 504 isa_bit_vfpv2, \ 505 isa_bit_vfpv3, \ 506 isa_bit_vfpv4, \ 507 isa_bit_fp16conv, \ 508 isa_bit_fp_dbl, \ 509 isa_bit_fp_d32 510 511 #define ISA_ALL_SIMD_INTERNAL \ 512 isa_bit_neon, \ 513 isa_bit_crypto, \ 514 isa_bit_fp_d32 515 516 #define ISA_ARMv8_4a \ 517 isa_bit_thumb, \ 518 isa_bit_mp, \ 519 isa_bit_adiv, \ 520 isa_bit_be8, \ 521 isa_bit_armv3m, \ 522 isa_bit_armv4, \ 523 isa_bit_armv5, \ 524 isa_bit_armv6, \ 525 isa_bit_armv7, \ 526 isa_bit_armv8, \ 527 isa_bit_armv5e, \ 528 isa_bit_armv6k, \ 529 isa_bit_thumb2, \ 530 isa_bit_crc32, \ 531 isa_bit_tdiv, \ 532 isa_bit_sec, \ 533 isa_bit_mode32, \ 534 isa_bit_armv8_1, \ 535 isa_bit_armv8_2, \ 536 isa_bit_armv8_3, \ 537 isa_bit_armv8_4, \ 538 isa_bit_lpae, \ 539 isa_bit_notm 540 541 #define ISA_ARMv7a \ 542 isa_bit_armv5e, \ 543 isa_bit_thumb, \ 544 isa_bit_armv6k, \ 545 isa_bit_thumb2, \ 546 isa_bit_be8, \ 547 isa_bit_mode32, \ 548 isa_bit_armv4, \ 549 isa_bit_armv5, \ 550 isa_bit_armv6, \ 551 isa_bit_armv7, \ 552 isa_bit_notm, \ 553 isa_bit_armv3m 554 555 #define ISA_ARMv6t2 \ 556 isa_bit_notm, \ 557 isa_bit_armv4, \ 558 isa_bit_armv5, \ 559 isa_bit_armv6, \ 560 isa_bit_armv3m, \ 561 isa_bit_armv5e, \ 562 isa_bit_thumb2, \ 563 isa_bit_be8, \ 564 isa_bit_mode32, \ 565 isa_bit_thumb 566 567 #define ISA_ARMv7em \ 568 isa_bit_armv4, \ 569 isa_bit_armv5, \ 570 isa_bit_armv6, \ 571 isa_bit_armv7, \ 572 isa_bit_armv3m, \ 573 isa_bit_be8, \ 574 isa_bit_armv5e, \ 575 isa_bit_armv7em, \ 576 isa_bit_thumb2, \ 577 isa_bit_mode32, \ 578 isa_bit_thumb, \ 579 isa_bit_tdiv 580 581