1cef8759bSmrg /* This file is automatically generated. DO NOT EDIT! */ 2*4c3eb207Smrg /* Generated from: NetBSD: mknative-gcc,v 1.116 2022/07/22 06:50:26 mrg Exp */ 3cef8759bSmrg /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp */ 4cef8759bSmrg 5cef8759bSmrg /* -*- buffer-read-only: t -*- 6cef8759bSmrg Generated automatically by parsecpu.awk from arm-cpus.in. 7cef8759bSmrg Do not edit. 8cef8759bSmrg 9*4c3eb207Smrg Copyright (C) 2011-2020 Free Software Foundation, Inc. 10cef8759bSmrg 11cef8759bSmrg This file is part of GCC. 12cef8759bSmrg 13cef8759bSmrg GCC is free software; you can redistribute it and/or modify 14cef8759bSmrg it under the terms of the GNU General Public License as 15cef8759bSmrg published by the Free Software Foundation; either version 3, 16cef8759bSmrg or (at your option) any later version. 17cef8759bSmrg 18cef8759bSmrg GCC is distributed in the hope that it will be useful, 19cef8759bSmrg but WITHOUT ANY WARRANTY; without even the implied warranty of 20cef8759bSmrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21cef8759bSmrg GNU General Public License for more details. 22cef8759bSmrg 23cef8759bSmrg You should have received a copy of the GNU General Public 24cef8759bSmrg License along with GCC; see the file COPYING3. If not see 25cef8759bSmrg <http://www.gnu.org/licenses/>. */ 26cef8759bSmrg 27cef8759bSmrg enum isa_feature { 28cef8759bSmrg isa_nobit = 0, 29*4c3eb207Smrg isa_bit_cdecp1, 30cef8759bSmrg isa_bit_vfpv2, 31cef8759bSmrg isa_bit_adiv, 32*4c3eb207Smrg isa_bit_cdecp2, 33cef8759bSmrg isa_bit_vfpv3, 34*4c3eb207Smrg isa_bit_cdecp3, 35cef8759bSmrg isa_bit_vfpv4, 36*4c3eb207Smrg isa_bit_cdecp4, 37*4c3eb207Smrg isa_bit_cdecp5, 38*4c3eb207Smrg isa_bit_cdecp6, 39*4c3eb207Smrg isa_bit_cdecp7, 40cef8759bSmrg isa_bit_smallmul, 41*4c3eb207Smrg isa_bit_mve, 42cef8759bSmrg isa_bit_iwmmxt, 43627f7eb2Smrg isa_bit_armv5te, 44*4c3eb207Smrg isa_bit_i8mm, 45cef8759bSmrg isa_bit_fp16fml, 46cef8759bSmrg isa_bit_xscale, 47*4c3eb207Smrg isa_bit_quirk_no_asmcpu, 48*4c3eb207Smrg isa_bit_bf16, 49627f7eb2Smrg isa_bit_sb, 50cef8759bSmrg isa_bit_thumb, 51cef8759bSmrg isa_bit_quirk_cm3_ldrd, 52cef8759bSmrg isa_bit_be8, 53627f7eb2Smrg isa_bit_armv5t, 54cef8759bSmrg isa_bit_dotprod, 55cef8759bSmrg isa_bit_lpae, 56cef8759bSmrg isa_bit_armv4, 57*4c3eb207Smrg isa_bit_armv8_1m_main, 58cef8759bSmrg isa_bit_quirk_armv6kz, 59cef8759bSmrg isa_bit_neon, 60cef8759bSmrg isa_bit_armv6, 61cef8759bSmrg isa_bit_crc32, 62cef8759bSmrg isa_bit_armv7, 63cef8759bSmrg isa_bit_armv7em, 64cef8759bSmrg isa_bit_cmse, 65cef8759bSmrg isa_bit_armv8, 66cef8759bSmrg isa_bit_fpv5, 67*4c3eb207Smrg isa_bit_vfp_base, 68*4c3eb207Smrg isa_bit_quirk_vlldm, 69cef8759bSmrg isa_bit_tdiv, 70cef8759bSmrg isa_bit_quirk_no_volatile_ce, 71cef8759bSmrg isa_bit_fp_d32, 72cef8759bSmrg isa_bit_thumb2, 73cef8759bSmrg isa_bit_iwmmxt2, 74cef8759bSmrg isa_bit_notm, 75cef8759bSmrg isa_bit_fp16, 76cef8759bSmrg isa_bit_armv8_1, 77cef8759bSmrg isa_bit_fp16conv, 78cef8759bSmrg isa_bit_armv8_2, 79cef8759bSmrg isa_bit_armv6k, 80cef8759bSmrg isa_bit_armv8_3, 81cef8759bSmrg isa_bit_armv8_4, 82cef8759bSmrg isa_bit_mp, 83627f7eb2Smrg isa_bit_armv8_5, 84cef8759bSmrg isa_bit_crypto, 85*4c3eb207Smrg isa_bit_armv8_6, 86*4c3eb207Smrg isa_bit_mve_float, 87cef8759bSmrg isa_bit_fp_dbl, 88cef8759bSmrg isa_bit_sec, 89*4c3eb207Smrg isa_bit_cdecp0, 90627f7eb2Smrg isa_bit_predres, 91cef8759bSmrg isa_num_bits 92cef8759bSmrg }; 93cef8759bSmrg 94cef8759bSmrg #define ISA_CRYPTO \ 95cef8759bSmrg isa_bit_crypto, \ 96cef8759bSmrg isa_bit_neon, \ 97*4c3eb207Smrg isa_bit_fp_dbl, \ 98*4c3eb207Smrg isa_bit_fp_d32 99cef8759bSmrg 100cef8759bSmrg #define ISA_ARMv8_1a \ 101cef8759bSmrg isa_bit_crc32, \ 102cef8759bSmrg isa_bit_be8, \ 103*4c3eb207Smrg isa_bit_lpae, \ 104*4c3eb207Smrg isa_bit_notm, \ 105*4c3eb207Smrg isa_bit_thumb, \ 106*4c3eb207Smrg isa_bit_adiv, \ 107*4c3eb207Smrg isa_bit_armv8_1, \ 108*4c3eb207Smrg isa_bit_sec, \ 109*4c3eb207Smrg isa_bit_armv5t, \ 110*4c3eb207Smrg isa_bit_armv6k, \ 111*4c3eb207Smrg isa_bit_thumb2, \ 112*4c3eb207Smrg isa_bit_armv5te, \ 113cef8759bSmrg isa_bit_mp, \ 114cef8759bSmrg isa_bit_armv4, \ 115cef8759bSmrg isa_bit_armv6, \ 116cef8759bSmrg isa_bit_armv7, \ 117cef8759bSmrg isa_bit_armv8, \ 118*4c3eb207Smrg isa_bit_tdiv 119cef8759bSmrg 120cef8759bSmrg #define ISA_ARMv5t \ 121cef8759bSmrg isa_bit_thumb, \ 122627f7eb2Smrg isa_bit_armv5t, \ 123*4c3eb207Smrg isa_bit_armv4, \ 124*4c3eb207Smrg isa_bit_notm 125*4c3eb207Smrg 126*4c3eb207Smrg #define ISA_ALL_FPU_EXTERNAL \ 127*4c3eb207Smrg isa_bit_fp16, \ 128*4c3eb207Smrg isa_bit_bf16 129cef8759bSmrg 130cef8759bSmrg #define ISA_ALL_CRYPTO \ 131cef8759bSmrg isa_bit_crypto 132cef8759bSmrg 133cef8759bSmrg #define ISA_DOTPROD \ 134627f7eb2Smrg isa_bit_neon, \ 135*4c3eb207Smrg isa_bit_dotprod, \ 136*4c3eb207Smrg isa_bit_fp_dbl, \ 137*4c3eb207Smrg isa_bit_fp_d32 138cef8759bSmrg 139*4c3eb207Smrg #define ISA_ARMv8_6a \ 140*4c3eb207Smrg isa_bit_notm, \ 141*4c3eb207Smrg isa_bit_sb, \ 142*4c3eb207Smrg isa_bit_armv8_1, \ 143*4c3eb207Smrg isa_bit_armv8_2, \ 144*4c3eb207Smrg isa_bit_armv8_3, \ 145*4c3eb207Smrg isa_bit_armv8_4, \ 146*4c3eb207Smrg isa_bit_armv8_5, \ 147*4c3eb207Smrg isa_bit_armv8_6, \ 148cef8759bSmrg isa_bit_armv4, \ 149cef8759bSmrg isa_bit_armv6, \ 150cef8759bSmrg isa_bit_armv7, \ 151cef8759bSmrg isa_bit_armv8, \ 152cef8759bSmrg isa_bit_be8, \ 153*4c3eb207Smrg isa_bit_predres, \ 154*4c3eb207Smrg isa_bit_adiv, \ 155*4c3eb207Smrg isa_bit_armv5te, \ 156*4c3eb207Smrg isa_bit_crc32, \ 157627f7eb2Smrg isa_bit_armv5t, \ 158*4c3eb207Smrg isa_bit_armv6k, \ 159*4c3eb207Smrg isa_bit_thumb2, \ 160*4c3eb207Smrg isa_bit_sec, \ 161*4c3eb207Smrg isa_bit_thumb, \ 162*4c3eb207Smrg isa_bit_tdiv, \ 163*4c3eb207Smrg isa_bit_mp, \ 164*4c3eb207Smrg isa_bit_lpae 165*4c3eb207Smrg 166*4c3eb207Smrg #define ISA_ARMv7m \ 167*4c3eb207Smrg isa_bit_thumb, \ 168*4c3eb207Smrg isa_bit_be8, \ 169*4c3eb207Smrg isa_bit_armv5te, \ 170cef8759bSmrg isa_bit_armv4, \ 171cef8759bSmrg isa_bit_armv6, \ 172*4c3eb207Smrg isa_bit_armv7, \ 173*4c3eb207Smrg isa_bit_thumb2, \ 174*4c3eb207Smrg isa_bit_armv5t, \ 175*4c3eb207Smrg isa_bit_tdiv 176cef8759bSmrg 177*4c3eb207Smrg #define ISA_MVE_FP \ 178*4c3eb207Smrg isa_bit_mve, \ 179*4c3eb207Smrg isa_bit_fpv5, \ 180*4c3eb207Smrg isa_bit_mve_float, \ 181*4c3eb207Smrg isa_bit_fp16, \ 182cef8759bSmrg isa_bit_vfpv2, \ 183cef8759bSmrg isa_bit_vfpv3, \ 184627f7eb2Smrg isa_bit_vfpv4, \ 185*4c3eb207Smrg isa_bit_fp16conv, \ 186*4c3eb207Smrg isa_bit_armv7em 187*4c3eb207Smrg 188*4c3eb207Smrg #define ISA_ARMv8m_main \ 189*4c3eb207Smrg isa_bit_armv5te, \ 190*4c3eb207Smrg isa_bit_cmse, \ 191*4c3eb207Smrg isa_bit_armv5t, \ 192*4c3eb207Smrg isa_bit_thumb2, \ 193*4c3eb207Smrg isa_bit_thumb, \ 194*4c3eb207Smrg isa_bit_be8, \ 195*4c3eb207Smrg isa_bit_armv4, \ 196*4c3eb207Smrg isa_bit_armv6, \ 197*4c3eb207Smrg isa_bit_armv7, \ 198*4c3eb207Smrg isa_bit_armv8, \ 199*4c3eb207Smrg isa_bit_tdiv 200*4c3eb207Smrg 201*4c3eb207Smrg #define ISA_ARMv8m_base \ 202*4c3eb207Smrg isa_bit_tdiv, \ 203*4c3eb207Smrg isa_bit_armv5te, \ 204*4c3eb207Smrg isa_bit_cmse, \ 205*4c3eb207Smrg isa_bit_thumb, \ 206*4c3eb207Smrg isa_bit_armv5t, \ 207*4c3eb207Smrg isa_bit_be8, \ 208*4c3eb207Smrg isa_bit_armv4, \ 209*4c3eb207Smrg isa_bit_armv6, \ 210*4c3eb207Smrg isa_bit_armv8 211*4c3eb207Smrg 212*4c3eb207Smrg #define ISA_FPv5 \ 213*4c3eb207Smrg isa_bit_fp16conv, \ 214*4c3eb207Smrg isa_bit_fpv5, \ 215*4c3eb207Smrg isa_bit_vfpv2, \ 216*4c3eb207Smrg isa_bit_vfpv3, \ 217*4c3eb207Smrg isa_bit_vfpv4 218cef8759bSmrg 219cef8759bSmrg #define ISA_ARMv7r \ 220cef8759bSmrg isa_bit_tdiv, \ 221627f7eb2Smrg isa_bit_armv5te, \ 222cef8759bSmrg isa_bit_be8, \ 223*4c3eb207Smrg isa_bit_notm, \ 224cef8759bSmrg isa_bit_armv4, \ 225cef8759bSmrg isa_bit_armv6, \ 226cef8759bSmrg isa_bit_armv7, \ 227cef8759bSmrg isa_bit_thumb2, \ 228cef8759bSmrg isa_bit_thumb, \ 229627f7eb2Smrg isa_bit_armv5t, \ 230*4c3eb207Smrg isa_bit_armv6k 231cef8759bSmrg 232cef8759bSmrg #define ISA_ARMv8_3a \ 233*4c3eb207Smrg isa_bit_thumb, \ 234*4c3eb207Smrg isa_bit_tdiv, \ 235*4c3eb207Smrg isa_bit_lpae, \ 236*4c3eb207Smrg isa_bit_notm, \ 237*4c3eb207Smrg isa_bit_sec, \ 238*4c3eb207Smrg isa_bit_armv5t, \ 239*4c3eb207Smrg isa_bit_armv6k, \ 240cef8759bSmrg isa_bit_thumb2, \ 241cef8759bSmrg isa_bit_armv4, \ 242cef8759bSmrg isa_bit_armv6, \ 243cef8759bSmrg isa_bit_armv7, \ 244cef8759bSmrg isa_bit_armv8, \ 245cef8759bSmrg isa_bit_adiv, \ 246cef8759bSmrg isa_bit_mp, \ 247cef8759bSmrg isa_bit_armv8_1, \ 248cef8759bSmrg isa_bit_armv8_2, \ 249cef8759bSmrg isa_bit_armv8_3, \ 250cef8759bSmrg isa_bit_crc32, \ 251*4c3eb207Smrg isa_bit_be8, \ 252627f7eb2Smrg isa_bit_armv5te 253cef8759bSmrg 254*4c3eb207Smrg #define ISA_ALL_SIMD_EXTERNAL \ 255*4c3eb207Smrg isa_bit_fp16fml, \ 256*4c3eb207Smrg isa_bit_dotprod, \ 257*4c3eb207Smrg isa_bit_i8mm 258*4c3eb207Smrg 259cef8759bSmrg #define ISA_VFPv2 \ 260cef8759bSmrg isa_bit_vfpv2 261cef8759bSmrg 262cef8759bSmrg #define ISA_FP_DBL \ 263cef8759bSmrg isa_bit_fp_dbl 264cef8759bSmrg 265cef8759bSmrg #define ISA_VFPv3 \ 266cef8759bSmrg isa_bit_vfpv2, \ 267cef8759bSmrg isa_bit_vfpv3 268cef8759bSmrg 269cef8759bSmrg #define ISA_VFPv4 \ 270*4c3eb207Smrg isa_bit_fp16conv, \ 271cef8759bSmrg isa_bit_vfpv2, \ 272cef8759bSmrg isa_bit_vfpv3, \ 273*4c3eb207Smrg isa_bit_vfpv4 274cef8759bSmrg 275cef8759bSmrg #define ISA_ARMv7ve \ 276*4c3eb207Smrg isa_bit_armv4, \ 277*4c3eb207Smrg isa_bit_armv6, \ 278*4c3eb207Smrg isa_bit_armv7, \ 279*4c3eb207Smrg isa_bit_tdiv, \ 280cef8759bSmrg isa_bit_mp, \ 281cef8759bSmrg isa_bit_lpae, \ 282cef8759bSmrg isa_bit_be8, \ 283cef8759bSmrg isa_bit_notm, \ 284cef8759bSmrg isa_bit_adiv, \ 285*4c3eb207Smrg isa_bit_thumb, \ 286*4c3eb207Smrg isa_bit_thumb2, \ 287*4c3eb207Smrg isa_bit_armv5te, \ 288*4c3eb207Smrg isa_bit_armv5t, \ 289*4c3eb207Smrg isa_bit_armv6k, \ 290*4c3eb207Smrg isa_bit_sec 291cef8759bSmrg 292cef8759bSmrg #define ISA_ARMv4t \ 293cef8759bSmrg isa_bit_notm, \ 294*4c3eb207Smrg isa_bit_thumb, \ 295*4c3eb207Smrg isa_bit_armv4 296cef8759bSmrg 297cef8759bSmrg #define ISA_ARMv6j \ 298cef8759bSmrg isa_bit_notm, \ 299*4c3eb207Smrg isa_bit_armv5te, \ 300cef8759bSmrg isa_bit_be8, \ 301cef8759bSmrg isa_bit_thumb, \ 302*4c3eb207Smrg isa_bit_armv4, \ 303*4c3eb207Smrg isa_bit_armv6, \ 304*4c3eb207Smrg isa_bit_armv5t 305cef8759bSmrg 306cef8759bSmrg #define ISA_ALL_FP \ 307cef8759bSmrg isa_bit_fp_d32, \ 308cef8759bSmrg isa_bit_neon, \ 309*4c3eb207Smrg isa_bit_dotprod, \ 310cef8759bSmrg isa_bit_vfpv2, \ 311cef8759bSmrg isa_bit_vfpv3, \ 312cef8759bSmrg isa_bit_vfpv4, \ 313*4c3eb207Smrg isa_bit_fpv5, \ 314*4c3eb207Smrg isa_bit_fp16conv, \ 315*4c3eb207Smrg isa_bit_fp16fml, \ 316*4c3eb207Smrg isa_bit_crypto, \ 317*4c3eb207Smrg isa_bit_i8mm, \ 318*4c3eb207Smrg isa_bit_fp16, \ 319*4c3eb207Smrg isa_bit_fp_dbl, \ 320*4c3eb207Smrg isa_bit_bf16 321cef8759bSmrg 322cef8759bSmrg #define ISA_ARMv6k \ 323cef8759bSmrg isa_bit_thumb, \ 324*4c3eb207Smrg isa_bit_armv5te, \ 325*4c3eb207Smrg isa_bit_armv4, \ 326*4c3eb207Smrg isa_bit_armv6, \ 327cef8759bSmrg isa_bit_notm, \ 328627f7eb2Smrg isa_bit_armv5t, \ 329cef8759bSmrg isa_bit_be8, \ 330*4c3eb207Smrg isa_bit_armv6k 331cef8759bSmrg 332cef8759bSmrg #define ISA_FP_D32 \ 333cef8759bSmrg isa_bit_fp_d32, \ 334cef8759bSmrg isa_bit_fp_dbl 335cef8759bSmrg 336cef8759bSmrg #define ISA_ALL_QUIRKS \ 337627f7eb2Smrg isa_bit_quirk_cm3_ldrd, \ 338*4c3eb207Smrg isa_bit_quirk_vlldm, \ 339*4c3eb207Smrg isa_bit_xscale, \ 340*4c3eb207Smrg isa_bit_quirk_no_asmcpu, \ 341cef8759bSmrg isa_bit_quirk_armv6kz, \ 342cef8759bSmrg isa_bit_quirk_no_volatile_ce 343cef8759bSmrg 344627f7eb2Smrg #define ISA_ARMv8_5a \ 345627f7eb2Smrg isa_bit_predres, \ 346*4c3eb207Smrg isa_bit_armv5te, \ 347*4c3eb207Smrg isa_bit_sec, \ 348*4c3eb207Smrg isa_bit_tdiv, \ 349cef8759bSmrg isa_bit_armv4, \ 350cef8759bSmrg isa_bit_armv6, \ 351cef8759bSmrg isa_bit_armv7, \ 352cef8759bSmrg isa_bit_armv8, \ 353627f7eb2Smrg isa_bit_armv5t, \ 354627f7eb2Smrg isa_bit_mp, \ 355627f7eb2Smrg isa_bit_armv6k, \ 356*4c3eb207Smrg isa_bit_thumb2, \ 357*4c3eb207Smrg isa_bit_lpae, \ 358*4c3eb207Smrg isa_bit_notm, \ 359*4c3eb207Smrg isa_bit_crc32, \ 360*4c3eb207Smrg isa_bit_sb, \ 361*4c3eb207Smrg isa_bit_be8, \ 362*4c3eb207Smrg isa_bit_adiv, \ 363*4c3eb207Smrg isa_bit_thumb, \ 364627f7eb2Smrg isa_bit_armv8_1, \ 365627f7eb2Smrg isa_bit_armv8_2, \ 366627f7eb2Smrg isa_bit_armv8_3, \ 367627f7eb2Smrg isa_bit_armv8_4, \ 368*4c3eb207Smrg isa_bit_armv8_5 369627f7eb2Smrg 370627f7eb2Smrg #define ISA_ARMv8a \ 371627f7eb2Smrg isa_bit_armv5t, \ 372627f7eb2Smrg isa_bit_armv6k, \ 373627f7eb2Smrg isa_bit_thumb2, \ 374627f7eb2Smrg isa_bit_tdiv, \ 375627f7eb2Smrg isa_bit_sec, \ 376*4c3eb207Smrg isa_bit_mp, \ 377*4c3eb207Smrg isa_bit_lpae, \ 378*4c3eb207Smrg isa_bit_notm, \ 379627f7eb2Smrg isa_bit_armv4, \ 380627f7eb2Smrg isa_bit_armv6, \ 381627f7eb2Smrg isa_bit_armv7, \ 382627f7eb2Smrg isa_bit_armv8, \ 383*4c3eb207Smrg isa_bit_adiv, \ 384627f7eb2Smrg isa_bit_armv5te, \ 385627f7eb2Smrg isa_bit_be8, \ 386627f7eb2Smrg isa_bit_thumb 387cef8759bSmrg 388cef8759bSmrg #define ISA_ARMv6m \ 389*4c3eb207Smrg isa_bit_armv5te, \ 390*4c3eb207Smrg isa_bit_thumb, \ 391627f7eb2Smrg isa_bit_armv5t, \ 392cef8759bSmrg isa_bit_armv4, \ 393cef8759bSmrg isa_bit_armv6, \ 394627f7eb2Smrg isa_bit_be8 395cef8759bSmrg 396cef8759bSmrg #define ISA_ALL_FPU_INTERNAL \ 397627f7eb2Smrg isa_bit_crypto, \ 398*4c3eb207Smrg isa_bit_neon, \ 399*4c3eb207Smrg isa_bit_fp_dbl, \ 400627f7eb2Smrg isa_bit_fp_d32, \ 401*4c3eb207Smrg isa_bit_fp16conv, \ 402*4c3eb207Smrg isa_bit_fpv5, \ 403cef8759bSmrg isa_bit_vfpv2, \ 404cef8759bSmrg isa_bit_vfpv3, \ 405cef8759bSmrg isa_bit_vfpv4 406cef8759bSmrg 407*4c3eb207Smrg #define ISA_IGNORE_FOR_MULTILIB \ 408*4c3eb207Smrg isa_bit_cdecp0, \ 409*4c3eb207Smrg isa_bit_cdecp1, \ 410*4c3eb207Smrg isa_bit_cdecp2, \ 411*4c3eb207Smrg isa_bit_cdecp3, \ 412*4c3eb207Smrg isa_bit_cdecp4, \ 413*4c3eb207Smrg isa_bit_cdecp5, \ 414*4c3eb207Smrg isa_bit_cdecp6, \ 415*4c3eb207Smrg isa_bit_cdecp7 416*4c3eb207Smrg 417cef8759bSmrg #define ISA_ARMv5tej \ 418627f7eb2Smrg isa_bit_armv5t, \ 419cef8759bSmrg isa_bit_armv4, \ 420*4c3eb207Smrg isa_bit_notm, \ 421627f7eb2Smrg isa_bit_armv5te, \ 422*4c3eb207Smrg isa_bit_thumb 423cef8759bSmrg 424cef8759bSmrg #define ISA_ALL_SIMD \ 425*4c3eb207Smrg isa_bit_i8mm, \ 426cef8759bSmrg isa_bit_fp_d32, \ 427cef8759bSmrg isa_bit_fp16fml, \ 428cef8759bSmrg isa_bit_neon, \ 429cef8759bSmrg isa_bit_dotprod, \ 430cef8759bSmrg isa_bit_crypto 431cef8759bSmrg 432*4c3eb207Smrg #define ISA_MVE \ 433*4c3eb207Smrg isa_bit_mve, \ 434*4c3eb207Smrg isa_bit_armv7em 435*4c3eb207Smrg 436cef8759bSmrg #define ISA_ARMv8_2a \ 437*4c3eb207Smrg isa_bit_mp, \ 438*4c3eb207Smrg isa_bit_thumb, \ 439*4c3eb207Smrg isa_bit_be8, \ 440627f7eb2Smrg isa_bit_armv5t, \ 441cef8759bSmrg isa_bit_tdiv, \ 442cef8759bSmrg isa_bit_armv6k, \ 443cef8759bSmrg isa_bit_armv8_1, \ 444cef8759bSmrg isa_bit_armv8_2, \ 445cef8759bSmrg isa_bit_thumb2, \ 446cef8759bSmrg isa_bit_lpae, \ 447cef8759bSmrg isa_bit_notm, \ 448cef8759bSmrg isa_bit_armv4, \ 449cef8759bSmrg isa_bit_armv6, \ 450cef8759bSmrg isa_bit_armv7, \ 451cef8759bSmrg isa_bit_armv8, \ 452*4c3eb207Smrg isa_bit_armv5te, \ 453*4c3eb207Smrg isa_bit_sec, \ 454*4c3eb207Smrg isa_bit_crc32, \ 455cef8759bSmrg isa_bit_adiv 456cef8759bSmrg 457cef8759bSmrg #define ISA_NEON \ 458cef8759bSmrg isa_bit_fp_dbl, \ 459*4c3eb207Smrg isa_bit_fp_d32, \ 460*4c3eb207Smrg isa_bit_neon 461cef8759bSmrg 462cef8759bSmrg #define ISA_ARMv5te \ 463cef8759bSmrg isa_bit_thumb, \ 464*4c3eb207Smrg isa_bit_armv4, \ 465cef8759bSmrg isa_bit_notm, \ 466*4c3eb207Smrg isa_bit_armv5t, \ 467*4c3eb207Smrg isa_bit_armv5te 468cef8759bSmrg 469cef8759bSmrg #define ISA_ARMv4 \ 470cef8759bSmrg isa_bit_armv4, \ 471cef8759bSmrg isa_bit_notm 472cef8759bSmrg 473*4c3eb207Smrg #define ISA_ARMv8_1m_main \ 474*4c3eb207Smrg isa_bit_thumb2, \ 475627f7eb2Smrg isa_bit_armv5te, \ 476*4c3eb207Smrg isa_bit_thumb, \ 477*4c3eb207Smrg isa_bit_tdiv, \ 478*4c3eb207Smrg isa_bit_cmse, \ 479627f7eb2Smrg isa_bit_be8, \ 480627f7eb2Smrg isa_bit_armv4, \ 481*4c3eb207Smrg isa_bit_armv8_1m_main, \ 482*4c3eb207Smrg isa_bit_armv6, \ 483*4c3eb207Smrg isa_bit_armv7, \ 484*4c3eb207Smrg isa_bit_armv8, \ 485*4c3eb207Smrg isa_bit_armv5t 486*4c3eb207Smrg 487*4c3eb207Smrg #define ISA_ARMv6 \ 488*4c3eb207Smrg isa_bit_armv5t, \ 489*4c3eb207Smrg isa_bit_armv4, \ 490*4c3eb207Smrg isa_bit_armv6, \ 491*4c3eb207Smrg isa_bit_be8, \ 492*4c3eb207Smrg isa_bit_thumb, \ 493*4c3eb207Smrg isa_bit_armv5te, \ 494*4c3eb207Smrg isa_bit_notm 495cef8759bSmrg 496cef8759bSmrg #define ISA_ARMv7 \ 497cef8759bSmrg isa_bit_thumb2, \ 498cef8759bSmrg isa_bit_be8, \ 499*4c3eb207Smrg isa_bit_thumb, \ 500cef8759bSmrg isa_bit_armv4, \ 501cef8759bSmrg isa_bit_armv6, \ 502cef8759bSmrg isa_bit_armv7, \ 503*4c3eb207Smrg isa_bit_armv5te, \ 504*4c3eb207Smrg isa_bit_armv5t 505cef8759bSmrg 506cef8759bSmrg #define ISA_ARMv6zk \ 507*4c3eb207Smrg isa_bit_armv4, \ 508*4c3eb207Smrg isa_bit_armv6, \ 509*4c3eb207Smrg isa_bit_armv5te, \ 510*4c3eb207Smrg isa_bit_notm, \ 511*4c3eb207Smrg isa_bit_thumb, \ 512627f7eb2Smrg isa_bit_armv5t, \ 513cef8759bSmrg isa_bit_armv6k, \ 514*4c3eb207Smrg isa_bit_be8 515cef8759bSmrg 516cef8759bSmrg #define ISA_ARMv6kz \ 517*4c3eb207Smrg isa_bit_armv5t, \ 518*4c3eb207Smrg isa_bit_armv6k, \ 519cef8759bSmrg isa_bit_thumb, \ 520cef8759bSmrg isa_bit_notm, \ 521cef8759bSmrg isa_bit_quirk_armv6kz, \ 522cef8759bSmrg isa_bit_be8, \ 523*4c3eb207Smrg isa_bit_armv4, \ 524*4c3eb207Smrg isa_bit_armv6, \ 525627f7eb2Smrg isa_bit_armv5te 526cef8759bSmrg 527cef8759bSmrg #define ISA_ARMv6z \ 528cef8759bSmrg isa_bit_notm, \ 529cef8759bSmrg isa_bit_armv4, \ 530cef8759bSmrg isa_bit_armv6, \ 531627f7eb2Smrg isa_bit_armv5te, \ 532*4c3eb207Smrg isa_bit_thumb, \ 533*4c3eb207Smrg isa_bit_be8, \ 534*4c3eb207Smrg isa_bit_armv5t 535cef8759bSmrg 536cef8759bSmrg #define ISA_ARMv8r \ 537*4c3eb207Smrg isa_bit_adiv, \ 538*4c3eb207Smrg isa_bit_armv5te, \ 539cef8759bSmrg isa_bit_armv4, \ 540cef8759bSmrg isa_bit_armv6, \ 541cef8759bSmrg isa_bit_armv7, \ 542cef8759bSmrg isa_bit_armv8, \ 543*4c3eb207Smrg isa_bit_mp, \ 544*4c3eb207Smrg isa_bit_be8, \ 545*4c3eb207Smrg isa_bit_tdiv, \ 546cef8759bSmrg isa_bit_lpae, \ 547cef8759bSmrg isa_bit_notm, \ 548cef8759bSmrg isa_bit_thumb, \ 549627f7eb2Smrg isa_bit_armv5t, \ 550cef8759bSmrg isa_bit_armv6k, \ 551cef8759bSmrg isa_bit_thumb2, \ 552*4c3eb207Smrg isa_bit_sec 553cef8759bSmrg 554cef8759bSmrg #define ISA_FP_ARMv8 \ 555*4c3eb207Smrg isa_bit_fpv5, \ 556cef8759bSmrg isa_bit_vfpv2, \ 557cef8759bSmrg isa_bit_vfpv3, \ 558cef8759bSmrg isa_bit_vfpv4, \ 559cef8759bSmrg isa_bit_fp16conv, \ 560*4c3eb207Smrg isa_bit_fp_dbl, \ 561*4c3eb207Smrg isa_bit_fp_d32 562cef8759bSmrg 563cef8759bSmrg #define ISA_ALL_SIMD_INTERNAL \ 564*4c3eb207Smrg isa_bit_neon, \ 565cef8759bSmrg isa_bit_crypto, \ 566*4c3eb207Smrg isa_bit_fp_d32 567cef8759bSmrg 568cef8759bSmrg #define ISA_ARMv8_4a \ 569cef8759bSmrg isa_bit_thumb, \ 570627f7eb2Smrg isa_bit_mp, \ 571*4c3eb207Smrg isa_bit_armv5te, \ 572*4c3eb207Smrg isa_bit_adiv, \ 573627f7eb2Smrg isa_bit_be8, \ 574*4c3eb207Smrg isa_bit_armv4, \ 575*4c3eb207Smrg isa_bit_armv6, \ 576*4c3eb207Smrg isa_bit_armv7, \ 577*4c3eb207Smrg isa_bit_armv8, \ 578*4c3eb207Smrg isa_bit_armv5t, \ 579*4c3eb207Smrg isa_bit_armv6k, \ 580*4c3eb207Smrg isa_bit_thumb2, \ 581*4c3eb207Smrg isa_bit_crc32, \ 582*4c3eb207Smrg isa_bit_tdiv, \ 583*4c3eb207Smrg isa_bit_sec, \ 584cef8759bSmrg isa_bit_armv8_1, \ 585cef8759bSmrg isa_bit_armv8_2, \ 586cef8759bSmrg isa_bit_armv8_3, \ 587cef8759bSmrg isa_bit_armv8_4, \ 588cef8759bSmrg isa_bit_lpae, \ 589*4c3eb207Smrg isa_bit_notm 590cef8759bSmrg 591cef8759bSmrg #define ISA_ARMv7a \ 592627f7eb2Smrg isa_bit_armv5t, \ 593cef8759bSmrg isa_bit_thumb, \ 594cef8759bSmrg isa_bit_armv6k, \ 595cef8759bSmrg isa_bit_thumb2, \ 596*4c3eb207Smrg isa_bit_be8, \ 597cef8759bSmrg isa_bit_armv4, \ 598cef8759bSmrg isa_bit_armv6, \ 599cef8759bSmrg isa_bit_armv7, \ 600*4c3eb207Smrg isa_bit_armv5te, \ 601627f7eb2Smrg isa_bit_notm 602cef8759bSmrg 603cef8759bSmrg #define ISA_ARMv6t2 \ 604cef8759bSmrg isa_bit_notm, \ 605cef8759bSmrg isa_bit_armv4, \ 606cef8759bSmrg isa_bit_armv6, \ 607627f7eb2Smrg isa_bit_armv5te, \ 608*4c3eb207Smrg isa_bit_armv5t, \ 609*4c3eb207Smrg isa_bit_thumb2, \ 610*4c3eb207Smrg isa_bit_be8, \ 611*4c3eb207Smrg isa_bit_thumb 612cef8759bSmrg 613cef8759bSmrg #define ISA_ARMv7em \ 614cef8759bSmrg isa_bit_armv4, \ 615cef8759bSmrg isa_bit_armv6, \ 616cef8759bSmrg isa_bit_armv7, \ 617627f7eb2Smrg isa_bit_be8, \ 618627f7eb2Smrg isa_bit_armv5t, \ 619*4c3eb207Smrg isa_bit_armv7em, \ 620*4c3eb207Smrg isa_bit_thumb2, \ 621*4c3eb207Smrg isa_bit_armv5te, \ 622*4c3eb207Smrg isa_bit_thumb, \ 623*4c3eb207Smrg isa_bit_tdiv 624*4c3eb207Smrg 625*4c3eb207Smrg struct fbit_implication { 626*4c3eb207Smrg /* Represents a feature implication, where: 627*4c3eb207Smrg ante IMPLIES cons 628*4c3eb207Smrg meaning that if ante is enabled then we should 629*4c3eb207Smrg also implicitly enable cons. */ 630*4c3eb207Smrg enum isa_feature ante; 631*4c3eb207Smrg enum isa_feature cons; 632*4c3eb207Smrg }; 633*4c3eb207Smrg 634*4c3eb207Smrg static const struct fbit_implication all_implied_fbits[] = 635*4c3eb207Smrg { 636*4c3eb207Smrg { isa_bit_vfpv2, isa_bit_vfp_base }, 637*4c3eb207Smrg { isa_bit_vfpv3, isa_bit_vfp_base }, 638*4c3eb207Smrg { isa_bit_vfpv4, isa_bit_vfp_base }, 639*4c3eb207Smrg { isa_bit_fp16, isa_bit_vfp_base }, 640*4c3eb207Smrg { isa_bit_fp16conv, isa_bit_vfp_base }, 641*4c3eb207Smrg { isa_bit_mve, isa_bit_vfp_base }, 642*4c3eb207Smrg { isa_bit_fp_d32, isa_bit_vfp_base }, 643*4c3eb207Smrg { isa_bit_fp16fml, isa_bit_vfp_base }, 644*4c3eb207Smrg { isa_bit_i8mm, isa_bit_vfp_base }, 645*4c3eb207Smrg { isa_bit_dotprod, isa_bit_vfp_base }, 646*4c3eb207Smrg { isa_bit_crypto, isa_bit_vfp_base }, 647*4c3eb207Smrg { isa_bit_bf16, isa_bit_vfp_base }, 648*4c3eb207Smrg { isa_bit_fp_dbl, isa_bit_vfp_base }, 649*4c3eb207Smrg { isa_bit_armv7em, isa_bit_vfp_base }, 650*4c3eb207Smrg { isa_bit_neon, isa_bit_vfp_base }, 651*4c3eb207Smrg { isa_bit_mve_float, isa_bit_vfp_base }, 652*4c3eb207Smrg { isa_bit_fpv5, isa_bit_vfp_base }, 653*4c3eb207Smrg { isa_nobit, isa_nobit } 654*4c3eb207Smrg }; 655cef8759bSmrg 656