Module Name:    src
Committed By:   christos
Date:           Thu Oct 24 03:26:06 UTC 2019

Added Files:
        src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf: arm-cpu-cdata.h
            arm-cpu-data.h

Log Message:
add new files
XXX: all the arms need regen


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
    src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-cdata.h \
    src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-data.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-cdata.h
diff -u /dev/null src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-cdata.h:1.1
--- /dev/null	Wed Oct 23 23:26:06 2019
+++ src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-cdata.h	Wed Oct 23 23:26:06 2019
@@ -0,0 +1,3591 @@
+/* This file is automatically generated.  DO NOT EDIT! */
+/* Generated from: NetBSD: mknative-gcc,v 1.102 2019/10/16 06:57:24 mrg Exp  */
+/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
+
+/* -*- buffer-read-only: t -*-
+   Generated automatically by parsecpu.awk from arm-cpus.in.
+   Do not edit.
+
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 3,
+   or (at your option) any later version.
+
+   GCC is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public
+   License along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+static const cpu_arch_extension cpu_opttab_arm9e[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm946es[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm966es[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm968es[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm10e[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm1020e[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm1022e[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm926ejs[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_arm1026ejs[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_genericv7a[] = {
+  {
+    "mp", false, false,
+    {
+      isa_bit_mp, isa_nobit
+    }
+  },
+  {
+    "sec", false, false,
+    {
+      isa_bit_sec, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4-d16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv4", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv3", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa5[] = {
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa7[] = {
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa8[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa9[] = {
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa12[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa15[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa17[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexr5[] = {
+  {
+    "nofp.dp", true, false,
+    {
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexr7[] = {
+  {
+    "nofp.dp", true, false,
+    {
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexr8[] = {
+  {
+    "nofp.dp", true, false,
+    {
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexm7[] = {
+  {
+    "nofp.dp", true, false,
+    {
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexm4[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa15cortexa7[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa17cortexa7[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa32[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa35[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa53[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa57[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa72[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa73[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_exynosm1[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_xgene1[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa57cortexa53[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa72cortexa53[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa73cortexa35[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa73cortexa53[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa55[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa75[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexa75cortexa55[] = {
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexm33[] = {
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nodsp", true, false,
+    {
+      isa_bit_armv7em, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const cpu_arch_extension cpu_opttab_cortexr52[] = {
+  {
+    "nofp.dp", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+const cpu_option all_cores[] =
+{
+  {
+    {
+      "arm2",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv2
+  },
+  {
+    {
+      "arm250",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv2
+  },
+  {
+    {
+      "arm3",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv2
+  },
+  {
+    {
+      "arm6",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm60",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm600",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm610",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm620",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7d",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7di",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm70",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm700",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm700i",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm710",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm720",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm710c",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7100",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7500",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7500fe",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3
+  },
+  {
+    {
+      "arm7m",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3m
+  },
+  {
+    {
+      "arm7dm",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3m
+  },
+  {
+    {
+      "arm7dmi",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv3m
+  },
+  {
+    {
+      "arm8",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "arm810",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "strongarm",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "strongarm110",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "strongarm1100",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "strongarm1110",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "fa526",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "fa626",
+      NULL,
+      {
+        isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4
+  },
+  {
+    {
+      "arm7tdmi",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm7tdmi-s",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm710t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm720t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm740t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm9",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm9tdmi",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm920",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm920t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm922t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm940t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "ep9312",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv4t
+  },
+  {
+    {
+      "arm10tdmi",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, 
+        isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5t
+  },
+  {
+    {
+      "arm1020t",
+      NULL,
+      {
+        isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, 
+        isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5t
+  },
+  {
+    {
+      "arm9e",
+      cpu_opttab_arm9e,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm946e-s",
+      cpu_opttab_arm946es,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm966e-s",
+      cpu_opttab_arm966es,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm968e-s",
+      cpu_opttab_arm968es,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm10e",
+      cpu_opttab_arm10e,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm1020e",
+      cpu_opttab_arm1020e,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm1022e",
+      cpu_opttab_arm1022e,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "xscale",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_xscale, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "iwmmxt",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_iwmmxt, isa_bit_xscale, isa_bit_thumb, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_iwmmxt
+  },
+  {
+    {
+      "iwmmxt2",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_iwmmxt, isa_bit_xscale, isa_bit_thumb, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, isa_bit_iwmmxt2, 
+        isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_iwmmxt2
+  },
+  {
+    {
+      "fa606te",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "fa626te",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "fmp626",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "fa726te",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5te
+  },
+  {
+    {
+      "arm926ej-s",
+      cpu_opttab_arm926ejs,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5tej
+  },
+  {
+    {
+      "arm1026ej-s",
+      cpu_opttab_arm1026ejs,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_mode32, isa_bit_notm, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv5tej
+  },
+  {
+    {
+      "arm1136j-s",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6j
+  },
+  {
+    {
+      "arm1136jf-s",
+      NULL,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, 
+        isa_bit_notm, isa_bit_fp_dbl, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6j
+  },
+  {
+    {
+      "arm1176jz-s",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_quirk_armv6kz, isa_bit_mode32, 
+        isa_bit_notm, isa_bit_armv6k, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6kz
+  },
+  {
+    {
+      "arm1176jzf-s",
+      NULL,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, isa_bit_quirk_armv6kz, 
+        isa_bit_mode32, isa_bit_notm, isa_bit_armv6k, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6kz
+  },
+  {
+    {
+      "mpcorenovfp",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+        isa_bit_armv6k, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6k
+  },
+  {
+    {
+      "mpcore",
+      NULL,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, 
+        isa_bit_notm, isa_bit_armv6k, isa_bit_fp_dbl, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6k
+  },
+  {
+    {
+      "arm1156t2-s",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6t2
+  },
+  {
+    {
+      "arm1156t2f-s",
+      NULL,
+      {
+        isa_bit_vfpv2, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp_dbl, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6t2
+  },
+  {
+    {
+      "cortex-m1",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "cortex-m0",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "cortex-m0plus",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "cortex-m1.small-multiply",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "cortex-m0.small-multiply",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "cortex-m0plus.small-multiply",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv6s_m
+  },
+  {
+    {
+      "generic-armv7-a",
+      cpu_opttab_genericv7a,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_armv5e, isa_bit_thumb, 
+        isa_bit_be8, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, 
+        isa_bit_armv6k, isa_bit_fp_dbl, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_a
+  },
+  {
+    {
+      "cortex-a5",
+      cpu_opttab_cortexa5,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_armv5e, isa_bit_thumb, 
+        isa_bit_be8, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_a
+  },
+  {
+    {
+      "cortex-a7",
+      cpu_opttab_cortexa7,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-a8",
+      cpu_opttab_cortexa8,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_armv5e, isa_bit_thumb, 
+        isa_bit_be8, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_fp_dbl, 
+        isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_a
+  },
+  {
+    {
+      "cortex-a9",
+      cpu_opttab_cortexa9,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_armv5e, isa_bit_thumb, 
+        isa_bit_be8, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_a
+  },
+  {
+    {
+      "cortex-a12",
+      cpu_opttab_cortexa12,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-a15",
+      cpu_opttab_cortexa15,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-a17",
+      cpu_opttab_cortexa17,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-r4",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, 
+        isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_r
+  },
+  {
+    {
+      "cortex-r4f",
+      NULL,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_armv5e, isa_bit_thumb, 
+        isa_bit_be8, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_armv6k, isa_bit_fp_dbl, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_r
+  },
+  {
+    {
+      "cortex-r5",
+      cpu_opttab_cortexr5,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_fp_dbl, 
+        isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_r
+  },
+  {
+    {
+      "cortex-r7",
+      cpu_opttab_cortexr7,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_fp_dbl, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_r
+  },
+  {
+    {
+      "cortex-r8",
+      cpu_opttab_cortexr8,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_fp_dbl, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_r
+  },
+  {
+    {
+      "cortex-m7",
+      cpu_opttab_cortexm7,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7em, isa_bit_armv7, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_quirk_no_volatile_ce, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_fp16conv, isa_bit_fp_dbl, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7e_m
+  },
+  {
+    {
+      "cortex-m4",
+      cpu_opttab_cortexm4,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7em, isa_bit_armv7, isa_bit_tdiv, 
+        isa_bit_mode32, isa_bit_thumb2, isa_bit_fp16conv, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7e_m
+  },
+  {
+    {
+      "cortex-m3",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_quirk_cm3_ldrd, isa_bit_be8, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, 
+        isa_bit_tdiv, isa_bit_mode32, isa_bit_thumb2, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_m
+  },
+  {
+    {
+      "marvell-pj4",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7_a
+  },
+  {
+    {
+      "cortex-a15.cortex-a7",
+      cpu_opttab_cortexa15cortexa7,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-a17.cortex-a7",
+      cpu_opttab_cortexa17cortexa7,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, 
+        isa_bit_mp, isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, 
+        isa_nobit
+      }
+    },
+    TARGET_ARCH_armv7ve
+  },
+  {
+    {
+      "cortex-a32",
+      cpu_opttab_cortexa32,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a35",
+      cpu_opttab_cortexa35,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a53",
+      cpu_opttab_cortexa53,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a57",
+      cpu_opttab_cortexa57,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a72",
+      cpu_opttab_cortexa72,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a73",
+      cpu_opttab_cortexa73,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "exynos-m1",
+      cpu_opttab_exynosm1,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "xgene1",
+      cpu_opttab_xgene1,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, isa_bit_tdiv, 
+        isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, 
+        isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, isa_bit_fp_dbl, 
+        isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a57.cortex-a53",
+      cpu_opttab_cortexa57cortexa53,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a72.cortex-a53",
+      cpu_opttab_cortexa72cortexa53,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a73.cortex-a35",
+      cpu_opttab_cortexa73cortexa35,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a73.cortex-a53",
+      cpu_opttab_cortexa73cortexa53,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_a
+  },
+  {
+    {
+      "cortex-a55",
+      cpu_opttab_cortexa55,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_dotprod, 
+        isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, 
+        isa_bit_fpv5, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16, isa_bit_armv8_1, 
+        isa_bit_fp16conv, isa_bit_armv8_2, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_2_a
+  },
+  {
+    {
+      "cortex-a75",
+      cpu_opttab_cortexa75,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_dotprod, 
+        isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, 
+        isa_bit_fpv5, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16, isa_bit_armv8_1, 
+        isa_bit_fp16conv, isa_bit_armv8_2, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_2_a
+  },
+  {
+    {
+      "cortex-a75.cortex-a55",
+      cpu_opttab_cortexa75cortexa55,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_dotprod, 
+        isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_neon, 
+        isa_bit_armv6, isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, 
+        isa_bit_fpv5, isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_notm, isa_bit_fp16, isa_bit_armv8_1, 
+        isa_bit_fp16conv, isa_bit_armv8_2, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_2_a
+  },
+  {
+    {
+      "cortex-m23",
+      NULL,
+      {
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+        isa_bit_armv5, isa_bit_armv6, isa_bit_armv8, isa_bit_cmse, 
+        isa_bit_tdiv, isa_bit_mode32, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_m_base
+  },
+  {
+    {
+      "cortex-m33",
+      cpu_opttab_cortexm33,
+      {
+        isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_armv5e, 
+        isa_bit_thumb, isa_bit_be8, isa_bit_armv4, isa_bit_armv5, 
+        isa_bit_armv6, isa_bit_armv7em, isa_bit_armv7, isa_bit_armv8, 
+        isa_bit_cmse, isa_bit_fpv5, isa_bit_tdiv, isa_bit_mode32, 
+        isa_bit_thumb2, isa_bit_fp16conv, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_m_main
+  },
+  {
+    {
+      "cortex-r52",
+      cpu_opttab_cortexr52,
+      {
+        isa_bit_vfpv2, isa_bit_adiv, isa_bit_vfpv3, isa_bit_vfpv4, 
+        isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_lpae, 
+        isa_bit_armv4, isa_bit_armv5, isa_bit_neon, isa_bit_armv6, 
+        isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_fpv5, 
+        isa_bit_tdiv, isa_bit_fp_d32, isa_bit_mode32, isa_bit_thumb2, 
+        isa_bit_notm, isa_bit_fp16conv, isa_bit_armv6k, isa_bit_mp, 
+        isa_bit_fp_dbl, isa_bit_sec, isa_bit_armv3m, isa_nobit
+      }
+    },
+    TARGET_ARCH_armv8_r
+  },
+  {{NULL, NULL, {isa_nobit}}, TARGET_ARCH_arm_none}
+};
+static const struct cpu_arch_extension arch_opttab_armv5e[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv5te[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv5tej[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6j[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6k[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6z[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6kz[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6zk[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv6t2[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv7[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv7_a[] = {
+  {
+    "mp", false, false,
+    {
+      isa_bit_mp, isa_nobit
+    }
+  },
+  {
+    "sec", false, false,
+    {
+      isa_bit_sec, isa_nobit
+    }
+  },
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4-d16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv4", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv3", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv7ve[] = {
+  {
+    "vfpv3-d16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nosimd", true, false,
+    {
+      isa_bit_fp16fml, isa_bit_dotprod, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv3", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv4", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv7_r[] = {
+  {
+    "fp.sp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_nobit
+    }
+  },
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3xd-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16-fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "idiv", false, false,
+    {
+      isa_bit_adiv, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "noidiv", true, false,
+    {
+      isa_bit_adiv, isa_nobit
+    }
+  },
+  {
+    "vfpv3xd", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv7e_m[] = {
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_nobit
+    }
+  },
+  {
+    "fpv5", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "fp.dp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4-sp-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_nobit
+    }
+  },
+  {
+    "fpv5-d16", false, true, 
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_a[] = {
+  {
+    "crc", false, false,
+    {
+      isa_bit_crc32, isa_nobit
+    }
+  },
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_1_a[] = {
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_2_a[] = {
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fp16fml", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16fml, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "dotprod", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_dotprod, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_3_a[] = {
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fp16fml", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16fml, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "dotprod", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_dotprod, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_4_a[] = {
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_dotprod, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fp16", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16fml, 
+      isa_bit_dotprod, isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, 
+      isa_bit_fp16, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_dotprod, 
+      isa_bit_neon, isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_m_main[] = {
+  {
+    "dsp", false, false,
+    {
+      isa_bit_armv7em, isa_nobit
+    }
+  },
+  {
+    "fp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "fp.dp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nodsp", true, false,
+    {
+      isa_bit_armv7em, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+static const struct cpu_arch_extension arch_opttab_armv8_r[] = {
+  {
+    "crc", false, false,
+    {
+      isa_bit_crc32, isa_nobit
+    }
+  },
+  {
+    "fp.sp", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "simd", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "crypto", false, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "nocrypto", true, false,
+    {
+      isa_bit_crypto, isa_nobit
+    }
+  },
+  {
+    "nofp", true, false,
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16, isa_bit_fp16conv, 
+      isa_bit_crypto, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  { NULL, false, false, {isa_nobit}}
+};
+
+const arch_option all_architectures[] =
+{
+  {
+    "armv2",
+    NULL,
+    {
+      isa_bit_mode26, isa_bit_notm, isa_nobit
+    },
+    "2", BASE_ARCH_2,
+    0,
+    TARGET_CPU_arm2,
+  },
+  {
+    "armv2a",
+    NULL,
+    {
+      isa_bit_mode26, isa_bit_notm, isa_nobit
+    },
+    "2", BASE_ARCH_2,
+    0,
+    TARGET_CPU_arm2,
+  },
+  {
+    "armv3",
+    NULL,
+    {
+      isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_nobit
+    },
+    "3", BASE_ARCH_3,
+    0,
+    TARGET_CPU_arm6,
+  },
+  {
+    "armv3m",
+    NULL,
+    {
+      isa_bit_mode26, isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "3M", BASE_ARCH_3M,
+    0,
+    TARGET_CPU_arm7m,
+  },
+  {
+    "armv4",
+    NULL,
+    {
+      isa_bit_mode26, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "4", BASE_ARCH_4,
+    0,
+    TARGET_CPU_arm7tdmi,
+  },
+  {
+    "armv4t",
+    NULL,
+    {
+      isa_bit_thumb, isa_bit_armv4, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "4T", BASE_ARCH_4T,
+    0,
+    TARGET_CPU_arm7tdmi,
+  },
+  {
+    "armv5",
+    NULL,
+    {
+      isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "5", BASE_ARCH_5,
+    0,
+    TARGET_CPU_arm10tdmi,
+  },
+  {
+    "armv5t",
+    NULL,
+    {
+      isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, 
+      isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "5T", BASE_ARCH_5T,
+    0,
+    TARGET_CPU_arm10tdmi,
+  },
+  {
+    "armv5e",
+    arch_opttab_armv5e,
+    {
+      isa_bit_armv5e, isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, 
+      isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "5E", BASE_ARCH_5E,
+    0,
+    TARGET_CPU_arm1026ejs,
+  },
+  {
+    "armv5te",
+    arch_opttab_armv5te,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+      isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "5TE", BASE_ARCH_5TE,
+    0,
+    TARGET_CPU_arm1026ejs,
+  },
+  {
+    "armv5tej",
+    arch_opttab_armv5tej,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_armv4, isa_bit_armv5, 
+      isa_bit_mode32, isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "5TEJ", BASE_ARCH_5TEJ,
+    0,
+    TARGET_CPU_arm1026ejs,
+  },
+  {
+    "armv6",
+    arch_opttab_armv6,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "6", BASE_ARCH_6,
+    0,
+    TARGET_CPU_arm1136js,
+  },
+  {
+    "armv6j",
+    arch_opttab_armv6j,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "6J", BASE_ARCH_6J,
+    0,
+    TARGET_CPU_arm1136js,
+  },
+  {
+    "armv6k",
+    arch_opttab_armv6k,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv6k, isa_bit_armv3m, isa_nobit
+    },
+    "6K", BASE_ARCH_6K,
+    0,
+    TARGET_CPU_mpcore,
+  },
+  {
+    "armv6z",
+    arch_opttab_armv6z,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "6Z", BASE_ARCH_6Z,
+    0,
+    TARGET_CPU_arm1176jzs,
+  },
+  {
+    "armv6kz",
+    arch_opttab_armv6kz,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_quirk_armv6kz, isa_bit_mode32, 
+      isa_bit_notm, isa_bit_armv6k, isa_bit_armv3m, isa_nobit
+    },
+    "6KZ", BASE_ARCH_6KZ,
+    0,
+    TARGET_CPU_arm1176jzs,
+  },
+  {
+    "armv6zk",
+    arch_opttab_armv6zk,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_quirk_armv6kz, isa_bit_mode32, 
+      isa_bit_notm, isa_bit_armv6k, isa_bit_armv3m, isa_nobit
+    },
+    "6KZ", BASE_ARCH_6KZ,
+    0,
+    TARGET_CPU_arm1176jzs,
+  },
+  {
+    "armv6t2",
+    arch_opttab_armv6t2,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_thumb2, 
+      isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "6T2", BASE_ARCH_6T2,
+    0,
+    TARGET_CPU_arm1156t2s,
+  },
+  {
+    "armv6-m",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "6M", BASE_ARCH_6M,
+    'M',
+    TARGET_CPU_cortexm1,
+  },
+  {
+    "armv6s-m",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_mode32, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "6M", BASE_ARCH_6M,
+    'M',
+    TARGET_CPU_cortexm1,
+  },
+  {
+    "armv7",
+    arch_opttab_armv7,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_mode32, 
+      isa_bit_thumb2, isa_bit_armv3m, isa_nobit
+    },
+    "7", BASE_ARCH_7,
+    0,
+    TARGET_CPU_cortexa8,
+  },
+  {
+    "armv7-a",
+    arch_opttab_armv7_a,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_mode32, 
+      isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "7A", BASE_ARCH_7A,
+    'A',
+    TARGET_CPU_cortexa8,
+  },
+  {
+    "armv7ve",
+    arch_opttab_armv7ve,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_armv7, isa_bit_tdiv, isa_bit_mode32, isa_bit_thumb2, 
+      isa_bit_notm, isa_bit_armv6k, isa_bit_mp, isa_bit_sec, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "7A", BASE_ARCH_7A,
+    'A',
+    TARGET_CPU_cortexa8,
+  },
+  {
+    "armv7-r",
+    arch_opttab_armv7_r,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "7R", BASE_ARCH_7R,
+    'R',
+    TARGET_CPU_cortexr4,
+  },
+  {
+    "armv7-m",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_armv3m, isa_nobit
+    },
+    "7M", BASE_ARCH_7M,
+    'M',
+    TARGET_CPU_cortexm3,
+  },
+  {
+    "armv7e-m",
+    arch_opttab_armv7e_m,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7em, isa_bit_armv7, 
+      isa_bit_tdiv, isa_bit_mode32, isa_bit_thumb2, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "7EM", BASE_ARCH_7EM,
+    'M',
+    TARGET_CPU_cortexm4,
+  },
+  {
+    "armv8-a",
+    arch_opttab_armv8_a,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_armv7, isa_bit_armv8, isa_bit_tdiv, isa_bit_mode32, 
+      isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_mp, 
+      isa_bit_sec, isa_bit_armv3m, isa_nobit
+    },
+    "8A", BASE_ARCH_8A,
+    'A',
+    TARGET_CPU_cortexa53,
+  },
+  {
+    "armv8.1-a",
+    arch_opttab_armv8_1_a,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_armv7, isa_bit_crc32, isa_bit_armv8, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv8_1, 
+      isa_bit_armv6k, isa_bit_mp, isa_bit_sec, isa_bit_armv3m, 
+      isa_nobit
+    },
+    "8A", BASE_ARCH_8A,
+    'A',
+    TARGET_CPU_cortexa53,
+  },
+  {
+    "armv8.2-a",
+    arch_opttab_armv8_2_a,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv8_1, 
+      isa_bit_armv8_2, isa_bit_armv6k, isa_bit_mp, isa_bit_sec, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "8A", BASE_ARCH_8A,
+    'A',
+    TARGET_CPU_cortexa53,
+  },
+  {
+    "armv8.3-a",
+    arch_opttab_armv8_3_a,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv8_1, 
+      isa_bit_armv8_2, isa_bit_armv6k, isa_bit_armv8_3, isa_bit_mp, 
+      isa_bit_sec, isa_bit_armv3m, isa_nobit
+    },
+    "8A", BASE_ARCH_8A,
+    'A',
+    TARGET_CPU_cortexa53,
+  },
+  {
+    "armv8.4-a",
+    arch_opttab_armv8_4_a,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_crc32, isa_bit_armv7, isa_bit_armv8, isa_bit_tdiv, 
+      isa_bit_mode32, isa_bit_thumb2, isa_bit_notm, isa_bit_armv8_1, 
+      isa_bit_armv8_2, isa_bit_armv6k, isa_bit_armv8_3, isa_bit_armv8_4, 
+      isa_bit_mp, isa_bit_sec, isa_bit_armv3m, isa_nobit
+    },
+    "8A", BASE_ARCH_8A,
+    'A',
+    TARGET_CPU_cortexa53,
+  },
+  {
+    "armv8-m.base",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv8, isa_bit_cmse, 
+      isa_bit_tdiv, isa_bit_mode32, isa_bit_armv3m, isa_nobit
+    },
+    "8M_BASE", BASE_ARCH_8M_BASE,
+    'M',
+    TARGET_CPU_cortexm23,
+  },
+  {
+    "armv8-m.main",
+    arch_opttab_armv8_m_main,
+    {
+      isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, isa_bit_armv4, 
+      isa_bit_armv5, isa_bit_armv6, isa_bit_armv7, isa_bit_armv8, 
+      isa_bit_cmse, isa_bit_tdiv, isa_bit_mode32, isa_bit_thumb2, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "8M_MAIN", BASE_ARCH_8M_MAIN,
+    'M',
+    TARGET_CPU_cortexm7,
+  },
+  {
+    "armv8-r",
+    arch_opttab_armv8_r,
+    {
+      isa_bit_adiv, isa_bit_armv5e, isa_bit_thumb, isa_bit_be8, 
+      isa_bit_lpae, isa_bit_armv4, isa_bit_armv5, isa_bit_armv6, 
+      isa_bit_armv7, isa_bit_armv8, isa_bit_tdiv, isa_bit_mode32, 
+      isa_bit_thumb2, isa_bit_notm, isa_bit_armv6k, isa_bit_mp, 
+      isa_bit_sec, isa_bit_armv3m, isa_nobit
+    },
+    "8R", BASE_ARCH_8R,
+    'R',
+    TARGET_CPU_cortexr52,
+  },
+  {
+    "iwmmxt",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_iwmmxt, isa_bit_xscale, isa_bit_thumb, 
+      isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, isa_bit_notm, 
+      isa_bit_armv3m, isa_nobit
+    },
+    "5TE", BASE_ARCH_5TE,
+    0,
+    TARGET_CPU_iwmmxt,
+  },
+  {
+    "iwmmxt2",
+    NULL,
+    {
+      isa_bit_armv5e, isa_bit_iwmmxt, isa_bit_xscale, isa_bit_thumb, 
+      isa_bit_armv4, isa_bit_armv5, isa_bit_mode32, isa_bit_iwmmxt2, 
+      isa_bit_notm, isa_bit_armv3m, isa_nobit
+    },
+    "5TE", BASE_ARCH_5TE,
+    0,
+    TARGET_CPU_iwmmxt2,
+  },
+  {{NULL, NULL, {isa_nobit}},
+   NULL, BASE_ARCH_0, 0, TARGET_CPU_arm_none}
+};
+
+const arm_fpu_desc all_fpus[] =
+{
+  {
+    "vfp",
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv2",
+    {
+      isa_bit_vfpv2, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3-fp16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv3-d16-fp16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "vfpv3xd",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_nobit
+    }
+  },
+  {
+    "vfpv3xd-fp16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "neon",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv3",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-fp16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_neon, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp_d32, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-vfpv4",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfpv4-d16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fpv4-sp-d16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fp16conv, 
+      isa_nobit
+    }
+  },
+  {
+    "fpv5-sp-d16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_nobit
+    }
+  },
+  {
+    "fpv5-d16",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "fp-armv8",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_fpv5, 
+      isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "neon-fp-armv8",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+  {
+    "crypto-neon-fp-armv8",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_vfpv4, isa_bit_neon, 
+      isa_bit_fpv5, isa_bit_fp_d32, isa_bit_fp16conv, isa_bit_crypto, 
+      isa_bit_fp_dbl, isa_nobit
+    }
+  },
+  {
+    "vfp3",
+    {
+      isa_bit_vfpv2, isa_bit_vfpv3, isa_bit_fp_d32, isa_bit_fp_dbl, 
+      isa_nobit
+    }
+  },
+};
Index: src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-data.h
diff -u /dev/null src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-data.h:1.1
--- /dev/null	Wed Oct 23 23:26:06 2019
+++ src/external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/arm-cpu-data.h	Wed Oct 23 23:26:06 2019
@@ -0,0 +1,590 @@
+/* This file is automatically generated.  DO NOT EDIT! */
+/* Generated from: NetBSD: mknative-gcc,v 1.102 2019/10/16 06:57:24 mrg Exp  */
+/* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
+
+/* -*- buffer-read-only: t -*-
+   Generated automatically by parsecpu.awk from arm-cpus.in.
+   Do not edit.
+
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 3,
+   or (at your option) any later version.
+
+   GCC is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public
+   License along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+static const cpu_tune all_tunes[] =
+{
+  { /* arm2.  */
+    TARGET_CPU_arm2,
+    (TF_CO_PROC | TF_NO_MODE32),
+    &arm_slowmul_tune
+  },
+  { /* arm250.  */
+    TARGET_CPU_arm250,
+    (TF_CO_PROC | TF_NO_MODE32),
+    &arm_slowmul_tune
+  },
+  { /* arm3.  */
+    TARGET_CPU_arm3,
+    (TF_CO_PROC | TF_NO_MODE32),
+    &arm_slowmul_tune
+  },
+  { /* arm6.  */
+    TARGET_CPU_arm6,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm60.  */
+    TARGET_CPU_arm60,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm600.  */
+    TARGET_CPU_arm600,
+    (TF_CO_PROC | TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm610.  */
+    TARGET_CPU_arm610,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm620.  */
+    TARGET_CPU_arm620,
+    (TF_CO_PROC | TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm7.  */
+    TARGET_CPU_arm7,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm7d.  */
+    TARGET_CPU_arm7d,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm7di.  */
+    TARGET_CPU_arm7di,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm70.  */
+    TARGET_CPU_arm70,
+    (TF_CO_PROC),
+    &arm_slowmul_tune
+  },
+  { /* arm700.  */
+    TARGET_CPU_arm700,
+    (TF_CO_PROC | TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm700i.  */
+    TARGET_CPU_arm700i,
+    (TF_CO_PROC | TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm710.  */
+    TARGET_CPU_arm710,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm720.  */
+    TARGET_CPU_arm720,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm710c.  */
+    TARGET_CPU_arm710c,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm7100.  */
+    TARGET_CPU_arm7100,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm7500.  */
+    TARGET_CPU_arm7500,
+    (TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm7500fe.  */
+    TARGET_CPU_arm7500fe,
+    (TF_CO_PROC | TF_WBUF),
+    &arm_slowmul_tune
+  },
+  { /* arm7m.  */
+    TARGET_CPU_arm7m,
+    (TF_CO_PROC),
+    &arm_fastmul_tune
+  },
+  { /* arm7dm.  */
+    TARGET_CPU_arm7dm,
+    (TF_CO_PROC),
+    &arm_fastmul_tune
+  },
+  { /* arm7dmi.  */
+    TARGET_CPU_arm7dmi,
+    (TF_CO_PROC),
+    &arm_fastmul_tune
+  },
+  { /* arm8.  */
+    TARGET_CPU_arm8,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm810.  */
+    TARGET_CPU_arm810,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* strongarm.  */
+    TARGET_CPU_strongarm,
+    (TF_LDSCHED | TF_STRONG),
+    &arm_strongarm_tune
+  },
+  { /* strongarm110.  */
+    TARGET_CPU_strongarm110,
+    (TF_LDSCHED | TF_STRONG),
+    &arm_strongarm_tune
+  },
+  { /* strongarm1100.  */
+    TARGET_CPU_strongarm1100,
+    (TF_LDSCHED | TF_STRONG),
+    &arm_strongarm_tune
+  },
+  { /* strongarm1110.  */
+    TARGET_CPU_strongarm1110,
+    (TF_LDSCHED | TF_STRONG),
+    &arm_strongarm_tune
+  },
+  { /* fa526.  */
+    TARGET_CPU_fa526,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* fa626.  */
+    TARGET_CPU_fa626,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm7tdmi.  */
+    TARGET_CPU_arm7tdmi,
+    (TF_CO_PROC),
+    &arm_fastmul_tune
+  },
+  { /* arm7tdmi-s.  */
+    TARGET_CPU_arm7tdmis,
+    (TF_CO_PROC),
+    &arm_fastmul_tune
+  },
+  { /* arm710t.  */
+    TARGET_CPU_arm710t,
+    (TF_WBUF),
+    &arm_fastmul_tune
+  },
+  { /* arm720t.  */
+    TARGET_CPU_arm720t,
+    (TF_WBUF),
+    &arm_fastmul_tune
+  },
+  { /* arm740t.  */
+    TARGET_CPU_arm740t,
+    (TF_WBUF),
+    &arm_fastmul_tune
+  },
+  { /* arm9.  */
+    TARGET_CPU_arm9,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm9tdmi.  */
+    TARGET_CPU_arm9tdmi,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm920.  */
+    TARGET_CPU_arm920,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm920t.  */
+    TARGET_CPU_arm920t,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm922t.  */
+    TARGET_CPU_arm922t,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm940t.  */
+    TARGET_CPU_arm940t,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* ep9312.  */
+    TARGET_CPU_ep9312,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm10tdmi.  */
+    TARGET_CPU_arm10tdmi,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm1020t.  */
+    TARGET_CPU_arm1020t,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm9e.  */
+    TARGET_CPU_arm9e,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm946e-s.  */
+    TARGET_CPU_arm946es,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm966e-s.  */
+    TARGET_CPU_arm966es,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm968e-s.  */
+    TARGET_CPU_arm968es,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm10e.  */
+    TARGET_CPU_arm10e,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm1020e.  */
+    TARGET_CPU_arm1020e,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* arm1022e.  */
+    TARGET_CPU_arm1022e,
+    (TF_LDSCHED),
+    &arm_fastmul_tune
+  },
+  { /* xscale.  */
+    TARGET_CPU_xscale,
+    (TF_LDSCHED | TF_XSCALE),
+    &arm_xscale_tune
+  },
+  { /* iwmmxt.  */
+    TARGET_CPU_iwmmxt,
+    (TF_LDSCHED | TF_XSCALE),
+    &arm_xscale_tune
+  },
+  { /* iwmmxt2.  */
+    TARGET_CPU_iwmmxt2,
+    (TF_LDSCHED | TF_XSCALE),
+    &arm_xscale_tune
+  },
+  { /* fa606te.  */
+    TARGET_CPU_fa606te,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* fa626te.  */
+    TARGET_CPU_fa626te,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* fmp626.  */
+    TARGET_CPU_fmp626,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* fa726te.  */
+    TARGET_CPU_fa726te,
+    (TF_LDSCHED),
+    &arm_fa726te_tune
+  },
+  { /* arm926ej-s.  */
+    TARGET_CPU_arm926ejs,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1026ej-s.  */
+    TARGET_CPU_arm1026ejs,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1136j-s.  */
+    TARGET_CPU_arm1136js,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1136jf-s.  */
+    TARGET_CPU_arm1136jfs,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1176jz-s.  */
+    TARGET_CPU_arm1176jzs,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1176jzf-s.  */
+    TARGET_CPU_arm1176jzfs,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* mpcorenovfp.  */
+    TARGET_CPU_mpcorenovfp,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* mpcore.  */
+    TARGET_CPU_mpcore,
+    (TF_LDSCHED),
+    &arm_9e_tune
+  },
+  { /* arm1156t2-s.  */
+    TARGET_CPU_arm1156t2s,
+    (TF_LDSCHED),
+    &arm_v6t2_tune
+  },
+  { /* arm1156t2f-s.  */
+    TARGET_CPU_arm1156t2fs,
+    (TF_LDSCHED),
+    &arm_v6t2_tune
+  },
+  { /* cortex-m1.  */
+    TARGET_CPU_cortexm1,
+    (TF_LDSCHED),
+    &arm_v6m_tune
+  },
+  { /* cortex-m0.  */
+    TARGET_CPU_cortexm0,
+    (TF_LDSCHED),
+    &arm_v6m_tune
+  },
+  { /* cortex-m0plus.  */
+    TARGET_CPU_cortexm0plus,
+    (TF_LDSCHED),
+    &arm_v6m_tune
+  },
+  { /* cortex-m1.small-multiply.  */
+    TARGET_CPU_cortexm1,
+    (TF_LDSCHED | TF_SMALLMUL),
+    &arm_v6m_tune
+  },
+  { /* cortex-m0.small-multiply.  */
+    TARGET_CPU_cortexm0,
+    (TF_LDSCHED | TF_SMALLMUL),
+    &arm_v6m_tune
+  },
+  { /* cortex-m0plus.small-multiply.  */
+    TARGET_CPU_cortexm0plus,
+    (TF_LDSCHED | TF_SMALLMUL),
+    &arm_v6m_tune
+  },
+  { /* generic-armv7-a.  */
+    TARGET_CPU_genericv7a,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-a5.  */
+    TARGET_CPU_cortexa5,
+    (TF_LDSCHED),
+    &arm_cortex_a5_tune
+  },
+  { /* cortex-a7.  */
+    TARGET_CPU_cortexa7,
+    (TF_LDSCHED),
+    &arm_cortex_a7_tune
+  },
+  { /* cortex-a8.  */
+    TARGET_CPU_cortexa8,
+    (TF_LDSCHED),
+    &arm_cortex_a8_tune
+  },
+  { /* cortex-a9.  */
+    TARGET_CPU_cortexa9,
+    (TF_LDSCHED),
+    &arm_cortex_a9_tune
+  },
+  { /* cortex-a12.  */
+    TARGET_CPU_cortexa17,
+    (TF_LDSCHED),
+    &arm_cortex_a12_tune
+  },
+  { /* cortex-a15.  */
+    TARGET_CPU_cortexa15,
+    (TF_LDSCHED),
+    &arm_cortex_a15_tune
+  },
+  { /* cortex-a17.  */
+    TARGET_CPU_cortexa17,
+    (TF_LDSCHED),
+    &arm_cortex_a12_tune
+  },
+  { /* cortex-r4.  */
+    TARGET_CPU_cortexr4,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-r4f.  */
+    TARGET_CPU_cortexr4f,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-r5.  */
+    TARGET_CPU_cortexr5,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-r7.  */
+    TARGET_CPU_cortexr7,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-r8.  */
+    TARGET_CPU_cortexr7,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  { /* cortex-m7.  */
+    TARGET_CPU_cortexm7,
+    (TF_LDSCHED),
+    &arm_cortex_m7_tune
+  },
+  { /* cortex-m4.  */
+    TARGET_CPU_cortexm4,
+    (TF_LDSCHED),
+    &arm_v7m_tune
+  },
+  { /* cortex-m3.  */
+    TARGET_CPU_cortexm3,
+    (TF_LDSCHED),
+    &arm_v7m_tune
+  },
+  { /* marvell-pj4.  */
+    TARGET_CPU_marvell_pj4,
+    (TF_LDSCHED),
+    &arm_marvell_pj4_tune
+  },
+  { /* cortex-a15.cortex-a7.  */
+    TARGET_CPU_cortexa7,
+    (TF_LDSCHED),
+    &arm_cortex_a15_tune
+  },
+  { /* cortex-a17.cortex-a7.  */
+    TARGET_CPU_cortexa7,
+    (TF_LDSCHED),
+    &arm_cortex_a12_tune
+  },
+  { /* cortex-a32.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a35_tune
+  },
+  { /* cortex-a35.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a35_tune
+  },
+  { /* cortex-a53.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a53_tune
+  },
+  { /* cortex-a57.  */
+    TARGET_CPU_cortexa57,
+    (TF_LDSCHED),
+    &arm_cortex_a57_tune
+  },
+  { /* cortex-a72.  */
+    TARGET_CPU_cortexa57,
+    (TF_LDSCHED),
+    &arm_cortex_a57_tune
+  },
+  { /* cortex-a73.  */
+    TARGET_CPU_cortexa57,
+    (TF_LDSCHED),
+    &arm_cortex_a73_tune
+  },
+  { /* exynos-m1.  */
+    TARGET_CPU_exynosm1,
+    (TF_LDSCHED),
+    &arm_exynosm1_tune
+  },
+  { /* xgene1.  */
+    TARGET_CPU_xgene1,
+    (TF_LDSCHED),
+    &arm_xgene1_tune
+  },
+  { /* cortex-a57.cortex-a53.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a57_tune
+  },
+  { /* cortex-a72.cortex-a53.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a57_tune
+  },
+  { /* cortex-a73.cortex-a35.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a73_tune
+  },
+  { /* cortex-a73.cortex-a53.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a73_tune
+  },
+  { /* cortex-a55.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a53_tune
+  },
+  { /* cortex-a75.  */
+    TARGET_CPU_cortexa57,
+    (TF_LDSCHED),
+    &arm_cortex_a73_tune
+  },
+  { /* cortex-a75.cortex-a55.  */
+    TARGET_CPU_cortexa53,
+    (TF_LDSCHED),
+    &arm_cortex_a73_tune
+  },
+  { /* cortex-m23.  */
+    TARGET_CPU_cortexm23,
+    (TF_LDSCHED),
+    &arm_v6m_tune
+  },
+  { /* cortex-m33.  */
+    TARGET_CPU_cortexm33,
+    (TF_LDSCHED),
+    &arm_v7m_tune
+  },
+  { /* cortex-r52.  */
+    TARGET_CPU_cortexr52,
+    (TF_LDSCHED),
+    &arm_cortex_tune
+  },
+  {TARGET_CPU_arm_none, 0, NULL}
+};

Reply via email to