1 /* ARC CPU architectures.
2 Copyright (C
) 2016-2023 Free Software Foundation
, Inc.
4 This file is part of GCC.
6 GCC is free software
; you can redistribute it and
/or modify it
7 under the terms of the GNU General Public License as published
8 by the Free Software Foundation
; either version
3, or (at your
9 option
) any later version.
11 GCC is distributed in the hope that it will be useful
, but WITHOUT
12 ANY WARRANTY
; without even the implied warranty of MERCHANTABILITY
13 or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public
14 License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC
; see the file COPYING3. If not see
18 <http
://www.gnu.org
/licenses
/>.
*/
20 /* List of various ARC CPU configurations. If updated
, cd to
21 $
(builddir
)/gcc and run
25 This will regenerate
/ update the following source files
:
27 - $
(srcdir
)/config
/arc
/t
-multilib
28 - $
(srcdir
)/config
/arc
/arc
-tables.opt
30 After that
, rebuild everything and check
-in the new sources to the
31 repo. This file defines the accepted values for
-mcpu
=<CPU
>
34 Before including this file
, define a macro
:
36 ARC_CPU (NAME
, ARCH
, FLAGS
, TUNE
)
38 where the arguments are the fields of arc_cpu_t
:
40 NAME A given arbitrary name.
41 ARCH Base architecture for the given CPU.
42 FLAGS Specific hardware flags that are enabled by this CPU configuration
,
43 as defined in arc
-options.def file
, and allowed by arc
-arches.def
44 file. The specific hardware flags are enumerated without using
45 spaces between the
'|' character and consequtive flags.
46 EXTRA Extra hardware flags
, different than the ones in
47 arc
-arches.def. Here we can specify the width of lp_count
,
49 TUNE Tune value for the given configuration
, otherwise NONE.
*/
51 ARC_CPU (em
, em
, 0, NONE
, NONE
)
52 ARC_CPU (em_mini
, em
, FL_RF16
, NONE
, NONE
)
53 ARC_CPU (arcem
, em
, FL_MPYOPT_2|FL_CD|FL_BS
, NONE
, NONE
)
54 ARC_CPU (em4
, em
, FL_CD
, NONE
, NONE
)
55 ARC_CPU (em4_dmips
, em
, FL_MPYOPT_2|FL_CD|FL_DIVREM|FL_NORM|FL_SWAP|FL_BS
, NONE
, NONE
)
56 ARC_CPU (em4_fpus
, em
, FL_MPYOPT_2|FL_CD|FL_DIVREM|FL_NORM|FL_SWAP|FL_BS|FL_FPU_FPUS
, NONE
, NONE
)
57 ARC_CPU (em4_fpuda
, em
, FL_MPYOPT_2|FL_CD|FL_DIVREM|FL_NORM|FL_SWAP|FL_BS|FL_FPU_FPUDA
, NONE
, NONE
)
58 ARC_CPU (quarkse_em
, em
, FL_MPYOPT_3|FL_CD|FL_DIVREM|FL_NORM|FL_SWAP|FL_BS|FL_FPX_QUARK|FL_SPFP|FL_DPFP
, LPCOUNT_16
, NONE
)
60 ARC_CPU (hs
, hs
, 0, NONE
, NONE
)
61 ARC_CPU (archs
, hs
, FL_MPYOPT_2|FL_DIVREM|FL_LL64
, NONE
, NONE
)
62 ARC_CPU (hs34
, hs
, FL_MPYOPT_2
, NONE
, NONE
)
63 ARC_CPU (hs38
, hs
, FL_MPYOPT_9|FL_DIVREM|FL_LL64
, NONE
, NONE
)
64 ARC_CPU (hs38_linux
, hs
, FL_MPYOPT_9|FL_DIVREM|FL_LL64|FL_FPU_FPUD_ALL
, NONE
, NONE
)
65 ARC_CPU (hs4x
, hs
, FL_MPYOPT_9|FL_DIVREM|FL_LL64
, NONE
, ARCHS4X
)
66 ARC_CPU (hs4xd
, hs
, FL_MPYOPT_9|FL_DIVREM|FL_LL64
, NONE
, ARCHS4XD
)
67 ARC_CPU (hs4x_rel31
, hs
, FL_MPYOPT_2|FL_DIVREM|FL_LL64
, NONE
, ARCHS4X_REL31A
)
69 ARC_CPU (arc600
, 6xx
, FL_BS
, NONE
, ARC600
)
70 ARC_CPU (arc600_norm
, 6xx
, FL_BS|FL_NORM
, NONE
, ARC600
)
71 ARC_CPU (arc600_mul64
, 6xx
, FL_BS|FL_NORM|FL_MUL64
, NONE
, ARC600
)
72 ARC_CPU (arc600_mul32x16
, 6xx
, FL_BS|FL_NORM|FL_MUL32x16
, NONE
, ARC600
)
73 ARC_CPU (arc601
, 6xx
, 0, NONE
, ARC600
)
74 ARC_CPU (arc601_norm
, 6xx
, FL_NORM
, NONE
, ARC600
)
75 ARC_CPU (arc601_mul64
, 6xx
, FL_NORM|FL_MUL64
, NONE
, ARC600
)
76 ARC_CPU (arc601_mul32x16
, 6xx
, FL_NORM|FL_MUL32x16
, NONE
, ARC600
)
78 ARC_CPU (arc700
, 700, 0, NONE
, ARC700_4_2_STD
)
79 ARC_CPU (nps400
, 700, 0, NONE
, ARC700_4_2_STD
)
81 /* Local Variables
: */