; -*- buffer-read-only: t -*-
; Generated automatically by genopt.sh from c6x-isas.def.
;
; Copyright (C) 2011-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(c6x_isa) Type(int)
Known C6X ISAs (for use with the -march= option):

EnumValue
Enum(c6x_isa) String(c62x) Value(0)

EnumValue
Enum(c6x_isa) String(c64x) Value(1)

EnumValue
Enum(c6x_isa) String(c64x+) Value(2)

EnumValue
Enum(c6x_isa) String(c67x) Value(3)

EnumValue
Enum(c6x_isa) String(c67x+) Value(4)

EnumValue
Enum(c6x_isa) String(c674x) Value(5)

