; -*- buffer-read-only: t -*-
; Generated automatically by parsecpu.awk from arm-cpus.in.
; Do not edit.

; Copyright (C) 2011-2019 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/>.

Enum
Name(processor_type) Type(enum processor_type)
Known ARM CPUs (for use with the -mcpu= and -mtune= options):

EnumValue
Enum(processor_type) String(arm8) Value( TARGET_CPU_arm8)

EnumValue
Enum(processor_type) String(arm810) Value( TARGET_CPU_arm810)

EnumValue
Enum(processor_type) String(strongarm) Value( TARGET_CPU_strongarm)

EnumValue
Enum(processor_type) String(fa526) Value( TARGET_CPU_fa526)

EnumValue
Enum(processor_type) String(fa626) Value( TARGET_CPU_fa626)

EnumValue
Enum(processor_type) String(arm7tdmi) Value( TARGET_CPU_arm7tdmi)

EnumValue
Enum(processor_type) String(arm710t) Value( TARGET_CPU_arm710t)

EnumValue
Enum(processor_type) String(arm9) Value( TARGET_CPU_arm9)

EnumValue
Enum(processor_type) String(arm9tdmi) Value( TARGET_CPU_arm9tdmi)

EnumValue
Enum(processor_type) String(arm920t) Value( TARGET_CPU_arm920t)

EnumValue
Enum(processor_type) String(arm10tdmi) Value( TARGET_CPU_arm10tdmi)

EnumValue
Enum(processor_type) String(arm9e) Value( TARGET_CPU_arm9e)

EnumValue
Enum(processor_type) String(arm10e) Value( TARGET_CPU_arm10e)

EnumValue
Enum(processor_type) String(xscale) Value( TARGET_CPU_xscale)

EnumValue
Enum(processor_type) String(iwmmxt) Value( TARGET_CPU_iwmmxt)

EnumValue
Enum(processor_type) String(iwmmxt2) Value( TARGET_CPU_iwmmxt2)

EnumValue
Enum(processor_type) String(fa606te) Value( TARGET_CPU_fa606te)

EnumValue
Enum(processor_type) String(fa626te) Value( TARGET_CPU_fa626te)

EnumValue
Enum(processor_type) String(fmp626) Value( TARGET_CPU_fmp626)

EnumValue
Enum(processor_type) String(fa726te) Value( TARGET_CPU_fa726te)

EnumValue
Enum(processor_type) String(arm926ej-s) Value( TARGET_CPU_arm926ejs)

EnumValue
Enum(processor_type) String(arm1026ej-s) Value( TARGET_CPU_arm1026ejs)

EnumValue
Enum(processor_type) String(arm1136j-s) Value( TARGET_CPU_arm1136js)

EnumValue
Enum(processor_type) String(arm1136jf-s) Value( TARGET_CPU_arm1136jfs)

EnumValue
Enum(processor_type) String(arm1176jz-s) Value( TARGET_CPU_arm1176jzs)

EnumValue
Enum(processor_type) String(arm1176jzf-s) Value( TARGET_CPU_arm1176jzfs)

EnumValue
Enum(processor_type) String(mpcorenovfp) Value( TARGET_CPU_mpcorenovfp)

EnumValue
Enum(processor_type) String(mpcore) Value( TARGET_CPU_mpcore)

EnumValue
Enum(processor_type) String(arm1156t2-s) Value( TARGET_CPU_arm1156t2s)

EnumValue
Enum(processor_type) String(arm1156t2f-s) Value( TARGET_CPU_arm1156t2fs)

EnumValue
Enum(processor_type) String(cortex-m1) Value( TARGET_CPU_cortexm1)

EnumValue
Enum(processor_type) String(cortex-m0) Value( TARGET_CPU_cortexm0)

EnumValue
Enum(processor_type) String(cortex-m0plus) Value( TARGET_CPU_cortexm0plus)

EnumValue
Enum(processor_type) String(cortex-m1.small-multiply) Value( TARGET_CPU_cortexm1smallmultiply)

EnumValue
Enum(processor_type) String(cortex-m0.small-multiply) Value( TARGET_CPU_cortexm0smallmultiply)

EnumValue
Enum(processor_type) String(cortex-m0plus.small-multiply) Value( TARGET_CPU_cortexm0plussmallmultiply)

EnumValue
Enum(processor_type) String(generic-armv7-a) Value( TARGET_CPU_genericv7a)

EnumValue
Enum(processor_type) String(cortex-a5) Value( TARGET_CPU_cortexa5)

EnumValue
Enum(processor_type) String(cortex-a7) Value( TARGET_CPU_cortexa7)

EnumValue
Enum(processor_type) String(cortex-a8) Value( TARGET_CPU_cortexa8)

EnumValue
Enum(processor_type) String(cortex-a9) Value( TARGET_CPU_cortexa9)

EnumValue
Enum(processor_type) String(cortex-a12) Value( TARGET_CPU_cortexa12)

EnumValue
Enum(processor_type) String(cortex-a15) Value( TARGET_CPU_cortexa15)

EnumValue
Enum(processor_type) String(cortex-a17) Value( TARGET_CPU_cortexa17)

EnumValue
Enum(processor_type) String(cortex-r4) Value( TARGET_CPU_cortexr4)

EnumValue
Enum(processor_type) String(cortex-r4f) Value( TARGET_CPU_cortexr4f)

EnumValue
Enum(processor_type) String(cortex-r5) Value( TARGET_CPU_cortexr5)

EnumValue
Enum(processor_type) String(cortex-r7) Value( TARGET_CPU_cortexr7)

EnumValue
Enum(processor_type) String(cortex-r8) Value( TARGET_CPU_cortexr8)

EnumValue
Enum(processor_type) String(cortex-m7) Value( TARGET_CPU_cortexm7)

EnumValue
Enum(processor_type) String(cortex-m4) Value( TARGET_CPU_cortexm4)

EnumValue
Enum(processor_type) String(cortex-m3) Value( TARGET_CPU_cortexm3)

EnumValue
Enum(processor_type) String(marvell-pj4) Value( TARGET_CPU_marvell_pj4)

EnumValue
Enum(processor_type) String(cortex-a15.cortex-a7) Value( TARGET_CPU_cortexa15cortexa7)

EnumValue
Enum(processor_type) String(cortex-a17.cortex-a7) Value( TARGET_CPU_cortexa17cortexa7)

EnumValue
Enum(processor_type) String(cortex-a32) Value( TARGET_CPU_cortexa32)

EnumValue
Enum(processor_type) String(cortex-a35) Value( TARGET_CPU_cortexa35)

EnumValue
Enum(processor_type) String(cortex-a53) Value( TARGET_CPU_cortexa53)

EnumValue
Enum(processor_type) String(cortex-a57) Value( TARGET_CPU_cortexa57)

EnumValue
Enum(processor_type) String(cortex-a72) Value( TARGET_CPU_cortexa72)

EnumValue
Enum(processor_type) String(cortex-a73) Value( TARGET_CPU_cortexa73)

EnumValue
Enum(processor_type) String(exynos-m1) Value( TARGET_CPU_exynosm1)

EnumValue
Enum(processor_type) String(xgene1) Value( TARGET_CPU_xgene1)

EnumValue
Enum(processor_type) String(cortex-a57.cortex-a53) Value( TARGET_CPU_cortexa57cortexa53)

EnumValue
Enum(processor_type) String(cortex-a72.cortex-a53) Value( TARGET_CPU_cortexa72cortexa53)

EnumValue
Enum(processor_type) String(cortex-a73.cortex-a35) Value( TARGET_CPU_cortexa73cortexa35)

EnumValue
Enum(processor_type) String(cortex-a73.cortex-a53) Value( TARGET_CPU_cortexa73cortexa53)

EnumValue
Enum(processor_type) String(cortex-a55) Value( TARGET_CPU_cortexa55)

EnumValue
Enum(processor_type) String(cortex-a75) Value( TARGET_CPU_cortexa75)

EnumValue
Enum(processor_type) String(cortex-a76) Value( TARGET_CPU_cortexa76)

EnumValue
Enum(processor_type) String(neoverse-n1) Value( TARGET_CPU_neoversen1)

EnumValue
Enum(processor_type) String(cortex-a75.cortex-a55) Value( TARGET_CPU_cortexa75cortexa55)

EnumValue
Enum(processor_type) String(cortex-a76.cortex-a55) Value( TARGET_CPU_cortexa76cortexa55)

EnumValue
Enum(processor_type) String(cortex-m23) Value( TARGET_CPU_cortexm23)

EnumValue
Enum(processor_type) String(cortex-m33) Value( TARGET_CPU_cortexm33)

EnumValue
Enum(processor_type) String(cortex-r52) Value( TARGET_CPU_cortexr52)

Enum
Name(arm_arch) Type(int)
Known ARM architectures (for use with the -march= option):

EnumValue
Enum(arm_arch) String(armv4) Value(0)

EnumValue
Enum(arm_arch) String(armv4t) Value(1)

EnumValue
Enum(arm_arch) String(armv5t) Value(2)

EnumValue
Enum(arm_arch) String(armv5te) Value(3)

EnumValue
Enum(arm_arch) String(armv5tej) Value(4)

EnumValue
Enum(arm_arch) String(armv6) Value(5)

EnumValue
Enum(arm_arch) String(armv6j) Value(6)

EnumValue
Enum(arm_arch) String(armv6k) Value(7)

EnumValue
Enum(arm_arch) String(armv6z) Value(8)

EnumValue
Enum(arm_arch) String(armv6kz) Value(9)

EnumValue
Enum(arm_arch) String(armv6zk) Value(10)

EnumValue
Enum(arm_arch) String(armv6t2) Value(11)

EnumValue
Enum(arm_arch) String(armv6-m) Value(12)

EnumValue
Enum(arm_arch) String(armv6s-m) Value(13)

EnumValue
Enum(arm_arch) String(armv7) Value(14)

EnumValue
Enum(arm_arch) String(armv7-a) Value(15)

EnumValue
Enum(arm_arch) String(armv7ve) Value(16)

EnumValue
Enum(arm_arch) String(armv7-r) Value(17)

EnumValue
Enum(arm_arch) String(armv7-m) Value(18)

EnumValue
Enum(arm_arch) String(armv7e-m) Value(19)

EnumValue
Enum(arm_arch) String(armv8-a) Value(20)

EnumValue
Enum(arm_arch) String(armv8.1-a) Value(21)

EnumValue
Enum(arm_arch) String(armv8.2-a) Value(22)

EnumValue
Enum(arm_arch) String(armv8.3-a) Value(23)

EnumValue
Enum(arm_arch) String(armv8.4-a) Value(24)

EnumValue
Enum(arm_arch) String(armv8.5-a) Value(25)

EnumValue
Enum(arm_arch) String(armv8-m.base) Value(26)

EnumValue
Enum(arm_arch) String(armv8-m.main) Value(27)

EnumValue
Enum(arm_arch) String(armv8-r) Value(28)

EnumValue
Enum(arm_arch) String(iwmmxt) Value(29)

EnumValue
Enum(arm_arch) String(iwmmxt2) Value(30)

Enum
Name(arm_fpu) Type(enum fpu_type)
Known ARM FPUs (for use with the -mfpu= option):

EnumValue
Enum(arm_fpu) String(vfp) Value(TARGET_FPU_vfp)

EnumValue
Enum(arm_fpu) String(vfpv2) Value(TARGET_FPU_vfpv2)

EnumValue
Enum(arm_fpu) String(vfpv3) Value(TARGET_FPU_vfpv3)

EnumValue
Enum(arm_fpu) String(vfpv3-fp16) Value(TARGET_FPU_vfpv3_fp16)

EnumValue
Enum(arm_fpu) String(vfpv3-d16) Value(TARGET_FPU_vfpv3_d16)

EnumValue
Enum(arm_fpu) String(vfpv3-d16-fp16) Value(TARGET_FPU_vfpv3_d16_fp16)

EnumValue
Enum(arm_fpu) String(vfpv3xd) Value(TARGET_FPU_vfpv3xd)

EnumValue
Enum(arm_fpu) String(vfpv3xd-fp16) Value(TARGET_FPU_vfpv3xd_fp16)

EnumValue
Enum(arm_fpu) String(neon) Value(TARGET_FPU_neon)

EnumValue
Enum(arm_fpu) String(neon-vfpv3) Value(TARGET_FPU_neon_vfpv3)

EnumValue
Enum(arm_fpu) String(neon-fp16) Value(TARGET_FPU_neon_fp16)

EnumValue
Enum(arm_fpu) String(vfpv4) Value(TARGET_FPU_vfpv4)

EnumValue
Enum(arm_fpu) String(neon-vfpv4) Value(TARGET_FPU_neon_vfpv4)

EnumValue
Enum(arm_fpu) String(vfpv4-d16) Value(TARGET_FPU_vfpv4_d16)

EnumValue
Enum(arm_fpu) String(fpv4-sp-d16) Value(TARGET_FPU_fpv4_sp_d16)

EnumValue
Enum(arm_fpu) String(fpv5-sp-d16) Value(TARGET_FPU_fpv5_sp_d16)

EnumValue
Enum(arm_fpu) String(fpv5-d16) Value(TARGET_FPU_fpv5_d16)

EnumValue
Enum(arm_fpu) String(fp-armv8) Value(TARGET_FPU_fp_armv8)

EnumValue
Enum(arm_fpu) String(neon-fp-armv8) Value(TARGET_FPU_neon_fp_armv8)

EnumValue
Enum(arm_fpu) String(crypto-neon-fp-armv8) Value(TARGET_FPU_crypto_neon_fp_armv8)

EnumValue
Enum(arm_fpu) String(vfp3) Value(TARGET_FPU_vfp3)

EnumValue
Enum(arm_fpu) String(auto) Value(TARGET_FPU_auto)
