1 /* Architecture and core descriptions for the C-SKY back end.
2 Copyright (C) 2018-2022 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))