1 /* Architecture and core descriptions for the C
-SKY back end.
2 Copyright (C
) 2018-2024 Free Software Foundation
, Inc.
3 Contributed by C
-SKY Microsystems and Mentor Graphics.
5 This file is part of GCC.
7 GCC is free software
; you can redistribute it and
/or modify it
8 under the terms of the GNU General Public License as published
9 by the Free Software Foundation
; either version
3, or (at your
10 option
) any later version.
12 GCC is distributed in the hope that it will be useful
, but WITHOUT
13 ANY WARRANTY
; without even the implied warranty of MERCHANTABILITY
14 or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC
; see the file COPYING3. If not see
19 <http
://www.gnu.org
/licenses
/>.
*/
21 /* Before using #include to read this file
, define a macro
:
23 CSKY_ARCH(NAME
, CORE
, ARCH
, ISA
)
25 The NAME is the name of the architecture
, represented as a string
26 constant. The CORE is the identifier for a core representative of
27 this architecture. ARCH is the architecture revision. ISA is the
28 detailed architectural capabilities of the core.
*/
31 CSKY_ARCH ("ck801", ck801
, CK801
,
32 CSKY_ISA_FEAT (CSKY_ISA_CK801
))
33 CSKY_ARCH ("ck802", ck802
, CK802
,
34 CSKY_ISA_FEAT (CSKY_ISA_CK802
))
35 CSKY_ARCH ("ck803", ck803
, CK803
,
36 CSKY_ISA_FEAT (CSKY_ISA_CK803
))
37 CSKY_ARCH ("ck807", ck807
, CK807
,
38 CSKY_ISA_FEAT (CSKY_ISA_CK807
) CSKY_ISA_FEAT (CSKY_ISA_DSP
))
39 CSKY_ARCH ("ck810", ck810
, CK810
,
40 CSKY_ISA_FEAT (CSKY_ISA_CK810
) CSKY_ISA_FEAT (CSKY_ISA_DSP
))
41 CSKY_ARCH ("ck860", ck860
, CK860
,
42 CSKY_ISA_FEAT (CSKY_ISA_CK860
))
46 /* Before using #include to read this file
, define a macro
:
48 CSKY_CORE(CORE_NAME
, INTERNAL_IDENT
, TUNE_IDENT
, ARCH
, ISA
)
50 The isa features of core will inherit the ARCH.
52 The CORE_NAME is the name of the core
, represented as a string constant.
53 The INTERNAL_IDENT is the name of the core represented as an identifier.
54 This must be unique for each entry in this table.
55 The TUNE_IDENT is the name of the core for which scheduling decisions
56 should be made
, represented as an identifier.
57 The ARCH is the architecture revision implemented by the chip.
58 The ISA is the detailed architectural capabilities of the core.
*/
61 /* ck801 Architecture Processors
*/
62 CSKY_CORE ("ck801", ck801
, ck801
, CK801
,
64 CSKY_CORE ("ck801t", ck801t
, ck801t
, CK801
,
67 /* ck802 Architecture Processors
*/
68 CSKY_CORE ("ck802", ck802
, ck802
, CK802
,
70 CSKY_CORE ("ck802t", ck802t
, ck802t
, CK802
,
72 CSKY_CORE ("ck802j", ck802j
, ck802j
, CK802
,
73 CSKY_ISA_FEAT (isa_bit_java
))
75 /* ck803 Architecture Processors
*/
76 CSKY_CORE ("ck803", ck803
, ck803
, CK803
,
78 CSKY_CORE ("ck803h", ck803h
, ck803h
, CK803
,
80 CSKY_CORE ("ck803t", ck803t
, ck803t
, CK803
,
82 CSKY_CORE ("ck803ht", ck803ht
, ck803ht
, CK803
,
84 CSKY_CORE ("ck803f", ck803f
, ck803f
, CK803
,
86 CSKY_CORE ("ck803fh", ck803fh
, ck803fh
, CK803
,
88 CSKY_CORE ("ck803e", ck803e
, ck803e
, CK803
,
89 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
90 CSKY_CORE ("ck803eh", ck803eh
, ck803eh
, CK803
,
91 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
92 CSKY_CORE ("ck803et", ck803et
, ck803et
, CK803
,
93 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
94 CSKY_CORE ("ck803eht", ck803eht
, ck803eht
, CK803
,
95 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
96 CSKY_CORE ("ck803ef", ck803ef
, ck803ef
, CK803
,
97 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
98 CSKY_CORE ("ck803efh", ck803efh
, ck803efh
, CK803
,
99 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
100 CSKY_CORE ("ck803ft", ck803ft
, ck803ft
, CK803
,
102 CSKY_CORE ("ck803eft", ck803eft
, ck803eft
, CK803
,
103 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
104 CSKY_CORE ("ck803efht", ck803efht
, ck803efht
, CK803
,
105 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
106 CSKY_CORE ("ck803r1", ck803r1
, ck803r1
, CK803
,
107 CSKY_ISA_FEAT (isa_bit_3E3r1
))
108 CSKY_CORE ("ck803hr1", ck803hr1
, ck803hr1
, CK803
,
109 CSKY_ISA_FEAT (isa_bit_3E3r1
))
110 CSKY_CORE ("ck803tr1", ck803tr1
, ck803tr1
, CK803
,
111 CSKY_ISA_FEAT (isa_bit_3E3r1
))
112 CSKY_CORE ("ck803htr1", ck803htr1
, ck803htr1
, CK803
,
113 CSKY_ISA_FEAT (isa_bit_3E3r1
))
114 CSKY_CORE ("ck803fr1", ck803fr1
, ck803fr1
, CK803
,
115 CSKY_ISA_FEAT (isa_bit_3E3r1
))
116 CSKY_CORE ("ck803fhr1", ck803fhr1
, ck803fhr1
, CK803
,
117 CSKY_ISA_FEAT (isa_bit_3E3r1
))
118 CSKY_CORE ("ck803er1", ck803er1
, ck803er1
, CK803
,
119 CSKY_ISA_FEAT (isa_bit_3E3r1
))
120 CSKY_CORE ("ck803ehr1", ck803ehr1
, ck803ehr1
, CK803
,
121 CSKY_ISA_FEAT (isa_bit_3E3r1
))
122 CSKY_CORE ("ck803etr1", ck803etr1
, ck803etr1
, CK803
,
123 CSKY_ISA_FEAT (isa_bit_3E3r1
))
124 CSKY_CORE ("ck803ehtr1", ck803ehtr1
, ck803ehtr1
, CK803
,
125 CSKY_ISA_FEAT (isa_bit_3E3r1
))
126 CSKY_CORE ("ck803efr1", ck803efr1
, ck803efr1
, CK803
,
127 CSKY_ISA_FEAT (isa_bit_3E3r1
))
128 CSKY_CORE ("ck803efhr1", ck803efhr1
, ck803efhr1
, CK803
,
129 CSKY_ISA_FEAT (isa_bit_3E3r1
))
130 CSKY_CORE ("ck803ftr1", ck803ftr1
, ck803ftr1
, CK803
,
131 CSKY_ISA_FEAT (isa_bit_3E3r1
))
132 CSKY_CORE ("ck803eftr1", ck803eftr1
, ck803eftr1
, CK803
,
133 CSKY_ISA_FEAT (isa_bit_3E3r1
))
134 CSKY_CORE ("ck803efhtr1", ck803efhtr1
, ck803efhtr1
, CK803
,
135 CSKY_ISA_FEAT (isa_bit_3E3r1
))
137 /* ck803s Architecture Processors
*/
138 CSKY_CORE ("ck803s", ck803s
, ck803s
, CK803
,
140 CSKY_CORE ("ck803st", ck803st
, ck803st
, CK803
,
142 CSKY_CORE ("ck803se", ck803se
, ck803se
, CK803
,
143 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
144 CSKY_CORE ("ck803sf", ck803sf
, ck803sf
, CK803
,
146 CSKY_CORE ("ck803sef", ck803sef
, ck803sef
, CK803
,
147 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
148 CSKY_CORE ("ck803seft", ck803seft
, ck803seft
, CK803
,
149 CSKY_ISA_FEAT (CSKY_ISA_DSP
))
151 /* ck807 Architecture Processors
*/
152 CSKY_CORE ("ck807e", ck807e
, ck807e
, CK807
,
154 CSKY_CORE ("ck807ef", ck807ef
, ck807ef
, CK807
,
156 CSKY_CORE ("ck807", ck807
, ck807
, CK807
,
158 CSKY_CORE ("ck807f", ck807f
, ck807f
, CK807
,
161 /* ck810 Architecture Processors
*/
162 CSKY_CORE ("ck810e", ck810e
, ck810e
, CK810
,
164 CSKY_CORE ("ck810et", ck810et
, ck810et
, CK810
,
166 CSKY_CORE ("ck810ef", ck810ef
, ck810ef
, CK810
,
168 CSKY_CORE ("ck810eft", ck810eft
, ck810eft
, CK810
,
170 CSKY_CORE ("ck810", ck810
, ck810
, CK810
,
172 CSKY_CORE ("ck810v", ck810v
, ck810v
, CK810
,
174 CSKY_CORE ("ck810f", ck810f
, ck810f
, CK810
,
176 CSKY_CORE ("ck810t", ck810t
, ck810t
, CK810
,
178 CSKY_CORE ("ck810fv", ck810fv
, ck810fv
, CK810
,
180 CSKY_CORE ("ck810tv", ck810tv
, ck810tv
, CK810
,
182 CSKY_CORE ("ck810ft", ck810ff
, ck810ft
, CK810
,
184 CSKY_CORE ("ck810ftv", ck810ftv
, ck810ftv
, CK810
,
187 /* ck860 Architecture Processors
*/
188 CSKY_CORE("ck860", ck860
, ck860
, CK860
,
190 CSKY_CORE("ck860f", ck860f
, ck860f
, CK860
,
195 /* Before using #include to read this file
, define a macro
:
197 CSKY_FPU(NAME
, CNAME
, ISA
)
199 NAME is the publicly visible option name.
200 CNAME is a C
-compatible variable name substring.
201 ISA is the list of feature bits that this FPU provides.
*/
204 CSKY_FPU ("fpv2_sf", fpv2_sf
, CSKY_ISA_FEAT (CSKY_ISA_FPv2_SF
))
205 CSKY_FPU ("fpv2", fpv2
, CSKY_ISA_FEAT (CSKY_ISA_FPv2
))
206 CSKY_FPU ("fpv2_divd", fpv2_divd
, CSKY_ISA_FEAT (CSKY_ISA_FPv2_DIVD
))
208 CSKY_FPU ("fpv3_hf", fpv3_hf
, CSKY_ISA_FEAT (CSKY_ISA_FPv3_HF
))
209 CSKY_FPU ("fpv3_hsf", fpv3_hsf
, CSKY_ISA_FEAT (CSKY_ISA_FPv3_HSF
))
210 CSKY_FPU ("fpv3_sdf", fpv3_sdf
, CSKY_ISA_FEAT (CSKY_ISA_FPv3_SDF
))
211 CSKY_FPU ("fpv3", fpv3
, CSKY_ISA_FEAT (CSKY_ISA_FPv3
))