; Auto-generated Makefile Snip
; Generated by    : ./gcc/config/arc/genoptions.awk
; Generated from  : ./gcc/config/arc/arc-cpu.def
;
; Copyright (C) 2016-2021 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 ARC CPUs (for use with the -mcpu= option):

EnumValue
Enum(processor_type) String(em) Value(PROCESSOR_em)

EnumValue
Enum(processor_type) String(em_mini) Value(PROCESSOR_em_mini)

EnumValue
Enum(processor_type) String(arcem) Value(PROCESSOR_arcem)

EnumValue
Enum(processor_type) String(em4) Value(PROCESSOR_em4)

EnumValue
Enum(processor_type) String(em4_dmips) Value(PROCESSOR_em4_dmips)

EnumValue
Enum(processor_type) String(em4_fpus) Value(PROCESSOR_em4_fpus)

EnumValue
Enum(processor_type) String(em4_fpuda) Value(PROCESSOR_em4_fpuda)

EnumValue
Enum(processor_type) String(quarkse_em) Value(PROCESSOR_quarkse_em)

EnumValue
Enum(processor_type) String(hs) Value(PROCESSOR_hs)

EnumValue
Enum(processor_type) String(archs) Value(PROCESSOR_archs)

EnumValue
Enum(processor_type) String(hs34) Value(PROCESSOR_hs34)

EnumValue
Enum(processor_type) String(hs38) Value(PROCESSOR_hs38)

EnumValue
Enum(processor_type) String(hs38_linux) Value(PROCESSOR_hs38_linux)

EnumValue
Enum(processor_type) String(hs4x) Value(PROCESSOR_hs4x)

EnumValue
Enum(processor_type) String(hs4xd) Value(PROCESSOR_hs4xd)

EnumValue
Enum(processor_type) String(arc600) Value(PROCESSOR_arc600)

EnumValue
Enum(processor_type) String(arc600_norm) Value(PROCESSOR_arc600_norm)

EnumValue
Enum(processor_type) String(arc600_mul64) Value(PROCESSOR_arc600_mul64)

EnumValue
Enum(processor_type) String(arc600_mul32x16) Value(PROCESSOR_arc600_mul32x16)

EnumValue
Enum(processor_type) String(arc601) Value(PROCESSOR_arc601)

EnumValue
Enum(processor_type) String(arc601_norm) Value(PROCESSOR_arc601_norm)

EnumValue
Enum(processor_type) String(arc601_mul64) Value(PROCESSOR_arc601_mul64)

EnumValue
Enum(processor_type) String(arc601_mul32x16) Value(PROCESSOR_arc601_mul32x16)

EnumValue
Enum(processor_type) String(arc700) Value(PROCESSOR_arc700)

EnumValue
Enum(processor_type) String(nps400) Value(PROCESSOR_nps400)


