1//===- CSKYTargetParser.def - CSKY target parsing defines -------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file provides defines to build up the CSKY target parser's logic.
10//
11//===----------------------------------------------------------------------===//
12
13// NOTE: NO INCLUDE GUARD DESIRED!
14
15#ifndef CSKY_FPU
16#define CSKY_FPU(NAME, KIND, VERSION)
17#endif
18CSKY_FPU("invalid", FK_INVALID, FPUVersion::NONE)
19CSKY_FPU("auto", FK_AUTO, FPUVersion::FPV2)
20CSKY_FPU("fpv2", FK_FPV2, FPUVersion::FPV2)
21CSKY_FPU("fpv2_divd", FK_FPV2_DIVD, FPUVersion::FPV2)
22CSKY_FPU("fpv2_sf", FK_FPV2_SF, FPUVersion::FPV2)
23CSKY_FPU("fpv3", FK_FPV3, FPUVersion::FPV3)
24CSKY_FPU("fpv3_hf", FK_FPV3_HF, FPUVersion::FPV3)
25CSKY_FPU("fpv3_hsf", FK_FPV3_HSF, FPUVersion::FPV3)
26CSKY_FPU("fpv3_sdf", FK_FPV3_SDF, FPUVersion::FPV3)
27
28#undef CSKY_FPU
29
30#ifndef CSKY_ARCH
31#define CSKY_ARCH(NAME, ID, ARCH_BASE_EXT)
32#endif
33CSKY_ARCH("invalid", INVALID, CSKY::AEK_INVALID)
34CSKY_ARCH("ck801", CK801, CSKY::MAEK_E1 | CSKY::AEK_TRUST)
35CSKY_ARCH("ck802", CK802, CSKY::MAEK_E2 | CSKY::AEK_TRUST | CSKY::AEK_NVIC)
36CSKY_ARCH("ck803", CK803,
37          CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
38              CSKY::AEK_HWDIV)
39CSKY_ARCH("ck803s", CK803S,
40          CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
41              CSKY::AEK_HWDIV)
42CSKY_ARCH("ck804", CK804,
43          CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
44              CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
45CSKY_ARCH("ck805", CK805,
46          CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
47              CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG | CSKY::MAEK_3E3R2 |
48              CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3)
49CSKY_ARCH("ck807", CK807,
50          CSKY::MAEK_3E7 | CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
51              CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
52              CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
53              CSKY::AEK_NVIC | CSKY::AEK_CACHE)
54CSKY_ARCH("ck810", CK810,
55          CSKY::MAEK_7E10 | CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
56              CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
57              CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
58              CSKY::AEK_NVIC | CSKY::AEK_CACHE)
59CSKY_ARCH("ck810v", CK810V,
60          CSKY::MAEK_7E10 | CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
61              CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
62              CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
63              CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1)
64CSKY_ARCH("ck860", CK860,
65          CSKY::MAEK_10E60 | CSKY::MAEK_MP | CSKY::MAEK_MP1E2 |
66              CSKY::AEK_TRUST | CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 |
67              CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
68              CSKY::AEK_CACHE | CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
69CSKY_ARCH("ck860v", CK860V,
70          CSKY::MAEK_10E60 | CSKY::MAEK_MP | CSKY::MAEK_MP1E2 |
71              CSKY::AEK_TRUST | CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 |
72              CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
73              CSKY::AEK_CACHE | CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
74              CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E60F)
75#undef CSKY_ARCH
76
77#ifndef CSKY_ARCH_EXT_NAME
78#define CSKY_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE)
79#endif
80CSKY_ARCH_EXT_NAME("invalid", CSKY::AEK_INVALID, nullptr, nullptr)
81CSKY_ARCH_EXT_NAME("none", CSKY::AEK_NONE, nullptr, nullptr)
82CSKY_ARCH_EXT_NAME("fpuv2_sf", CSKY::AEK_FPUV2SF, "+fpuv2_sf", "-fpuv2_sf")
83CSKY_ARCH_EXT_NAME("fpuv2_df", CSKY::AEK_FPUV2DF, "+fpuv2_df", "-fpuv2_df")
84CSKY_ARCH_EXT_NAME("fdivdu", CSKY::AEK_FDIVDU, "+fdivdu", "-fdivdu")
85CSKY_ARCH_EXT_NAME("fpuv3_hi", CSKY::AEK_FPUV3HI, "+fpuv3_hi", "-fpuv3_hi")
86CSKY_ARCH_EXT_NAME("fpuv3_hf", CSKY::AEK_FPUV3HF, "+fpuv3_hf", "-fpuv3_hf")
87CSKY_ARCH_EXT_NAME("fpuv3_sf", CSKY::AEK_FPUV3SF, "+fpuv3_sf", "-fpuv3_sf")
88CSKY_ARCH_EXT_NAME("fpuv3_df", CSKY::AEK_FPUV3DF, "+fpuv3_df", "-fpuv3_df")
89CSKY_ARCH_EXT_NAME("floate1", CSKY::AEK_FLOATE1, "+floate1", "-floate1")
90CSKY_ARCH_EXT_NAME("float1e2", CSKY::AEK_FLOAT1E2, "+float1e2", "-float1e2")
91CSKY_ARCH_EXT_NAME("float1e3", CSKY::AEK_FLOAT1E3, "+float1e3", "-float1e3")
92CSKY_ARCH_EXT_NAME("float3e4", CSKY::AEK_FLOAT3E4, "+float3e4", "-float3e4")
93CSKY_ARCH_EXT_NAME("float7e60", CSKY::AEK_FLOAT7E60, "+float7e60", "-float7e60")
94CSKY_ARCH_EXT_NAME("hwdiv", CSKY::AEK_HWDIV, "+hwdiv", "-hwdiv")
95CSKY_ARCH_EXT_NAME("multiple_stld", CSKY::AEK_STLD, "+multiple_stld",
96                   "-multiple_stld")
97CSKY_ARCH_EXT_NAME("pushpop", CSKY::AEK_PUSHPOP, "+pushpop", "-pushpop")
98CSKY_ARCH_EXT_NAME("edsp", CSKY::AEK_EDSP, "+edsp", "-edsp")
99CSKY_ARCH_EXT_NAME("dsp1e2", CSKY::AEK_DSP1E2, "+dsp1e2", "-dsp1e2")
100CSKY_ARCH_EXT_NAME("dspe60", CSKY::AEK_DSPE60, "+dspe60", "-dspe60")
101CSKY_ARCH_EXT_NAME("dspv2", CSKY::AEK_DSPV2, "+dspv2", "-dspv2")
102CSKY_ARCH_EXT_NAME("dsp_silan", CSKY::AEK_DSPSILAN, "+dsp_silan", "-dsp_silan")
103CSKY_ARCH_EXT_NAME("elrw", CSKY::AEK_ELRW, "+elrw", "-elrw")
104CSKY_ARCH_EXT_NAME("trust", CSKY::AEK_TRUST, "+trust", "-trust")
105CSKY_ARCH_EXT_NAME("java", CSKY::AEK_JAVA, "+java", "-java")
106CSKY_ARCH_EXT_NAME("cache", CSKY::AEK_CACHE, "+cache", "-cache")
107CSKY_ARCH_EXT_NAME("nvic", CSKY::AEK_NVIC, "+nvic", "-nvic")
108CSKY_ARCH_EXT_NAME("doloop", CSKY::AEK_DOLOOP, "+doloop", "-doloop")
109CSKY_ARCH_EXT_NAME("high-registers", CSKY::AEK_HIGHREG, "+high-registers",
110                   "-high-registers")
111CSKY_ARCH_EXT_NAME("smart", CSKY::AEK_SMART, "+smart", "-smart")
112CSKY_ARCH_EXT_NAME("vdsp2e3", CSKY::AEK_VDSP2E3, "+vdsp2e3", "-vdsp2e3")
113CSKY_ARCH_EXT_NAME("vdsp2e60f", CSKY::AEK_VDSP2E60F, "+vdsp2e60f", "-vdsp2e60f")
114CSKY_ARCH_EXT_NAME("vdspv2", CSKY::AEK_VDSPV2, "+vdspv2", "-vdspv2")
115CSKY_ARCH_EXT_NAME("hard-tp", CSKY::AEK_HARDTP, "+hard-tp", "-hard-tp")
116CSKY_ARCH_EXT_NAME("soft-tp", CSKY::AEK_SOFTTP, "+soft-tp", "-soft-tp")
117CSKY_ARCH_EXT_NAME("istack", CSKY::AEK_ISTACK, "+istack", "-istack")
118CSKY_ARCH_EXT_NAME("constpool", CSKY::AEK_CONSTPOOL, "+constpool", "-constpool")
119CSKY_ARCH_EXT_NAME("stack-size", CSKY::AEK_STACKSIZE, "+stack-size",
120                   "-stack-size")
121CSKY_ARCH_EXT_NAME("ccrt", CSKY::AEK_CCRT, "+ccrt", "-ccrt")
122CSKY_ARCH_EXT_NAME("vdspv1", CSKY::AEK_VDSPV1, "+vdspv1", "-vdspv1")
123
124CSKY_ARCH_EXT_NAME("e1", CSKY::AEK_E1, "+e1", "-e1")
125CSKY_ARCH_EXT_NAME("e2", CSKY::AEK_E2, "+e2", "-e2")
126CSKY_ARCH_EXT_NAME("2e3", CSKY::AEK_2E3, "+2e3", "-2e3")
127CSKY_ARCH_EXT_NAME("mp", CSKY::AEK_MP, "+mp", "-mp")
128CSKY_ARCH_EXT_NAME("3e3r1", CSKY::AEK_3E3R1, "+3e3r1", "-3e3r1")
129CSKY_ARCH_EXT_NAME("3e3r2", CSKY::AEK_3E3R2, "+3e3r2", "-3e3r2")
130CSKY_ARCH_EXT_NAME("3e3r3", CSKY::AEK_3E3R3, "+3e3r3", "-3e3r3")
131CSKY_ARCH_EXT_NAME("3e7", CSKY::AEK_3E7, "+3e7", "-3e7")
132CSKY_ARCH_EXT_NAME("mp1e2", CSKY::AEK_MP1E2, "+mp1e2", "-mp1e2")
133CSKY_ARCH_EXT_NAME("7e10", CSKY::AEK_7E10, "+7e10", "-7e10")
134CSKY_ARCH_EXT_NAME("10e60", CSKY::AEK_10E60, "+10e60", "-10e60")
135
136#undef CSKY_ARCH_EXT_NAME
137
138#ifndef CSKY_CPU_NAME
139#define CSKY_CPU_NAME(NAME, ARCH_ID, DEFAULT_EXT)
140#endif
141
142CSKY_CPU_NAME("ck801", CK801, CSKY::AEK_NONE)
143CSKY_CPU_NAME("ck801t", CK801, CSKY::AEK_NONE)
144CSKY_CPU_NAME("e801", CK801, CSKY::AEK_NONE)
145
146CSKY_CPU_NAME("ck802", CK802, CSKY::AEK_NONE)
147CSKY_CPU_NAME("ck802t", CK802, CSKY::AEK_NONE)
148CSKY_CPU_NAME("ck802j", CK802, CSKY::AEK_JAVA)
149CSKY_CPU_NAME("e802", CK802, CSKY::AEK_NONE)
150CSKY_CPU_NAME("e802t", CK802, CSKY::AEK_NONE)
151CSKY_CPU_NAME("s802", CK802, CSKY::AEK_NONE)
152CSKY_CPU_NAME("s802t", CK802, CSKY::AEK_NONE)
153
154CSKY_CPU_NAME("ck803", CK803, CSKY::AEK_NONE)
155CSKY_CPU_NAME("ck803h", CK803, CSKY::AEK_NONE)
156CSKY_CPU_NAME("ck803t", CK803, CSKY::AEK_NONE)
157CSKY_CPU_NAME("ck803ht", CK803, CSKY::AEK_NONE)
158CSKY_CPU_NAME("ck803f", CK803,
159              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
160CSKY_CPU_NAME("ck803fh", CK803,
161              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
162CSKY_CPU_NAME("ck803e", CK803,
163              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
164CSKY_CPU_NAME("ck803eh", CK803,
165              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
166CSKY_CPU_NAME("ck803et", CK803,
167              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
168CSKY_CPU_NAME("ck803eht", CK803,
169              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
170CSKY_CPU_NAME("ck803ef", CK803,
171              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
172                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
173CSKY_CPU_NAME("ck803efh", CK803,
174              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
175                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
176CSKY_CPU_NAME("ck803ft", CK803,
177              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
178CSKY_CPU_NAME("ck803eft", CK803,
179              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
180                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
181CSKY_CPU_NAME("ck803efht", CK803,
182              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
183                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
184CSKY_CPU_NAME("ck803r1", CK803,
185              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
186CSKY_CPU_NAME("ck803r2", CK803,
187              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
188CSKY_CPU_NAME("ck803r3", CK803,
189              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
190CSKY_CPU_NAME("ck803hr1", CK803,
191              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
192CSKY_CPU_NAME("ck803hr2", CK803,
193              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
194CSKY_CPU_NAME("ck803hr3", CK803,
195              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
196CSKY_CPU_NAME("ck803tr1", CK803,
197              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
198CSKY_CPU_NAME("ck803tr2", CK803,
199              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
200CSKY_CPU_NAME("ck803tr3", CK803,
201              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
202CSKY_CPU_NAME("ck803htr1", CK803,
203              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
204CSKY_CPU_NAME("ck803htr2", CK803,
205              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
206CSKY_CPU_NAME("ck803htr3", CK803,
207              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2)
208CSKY_CPU_NAME("ck803fr1", CK803,
209              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
210                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
211CSKY_CPU_NAME("ck803fr2", CK803,
212              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
213                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
214CSKY_CPU_NAME("ck803fr3", CK803,
215              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
216                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
217CSKY_CPU_NAME("ck803fhr1", CK803,
218              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
219                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
220CSKY_CPU_NAME("ck803fhr2", CK803,
221              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
222                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
223CSKY_CPU_NAME("ck803fhr3", CK803,
224              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
225                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
226CSKY_CPU_NAME("ck803er1", CK803,
227              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
228                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
229                  CSKY::AEK_HIGHREG)
230CSKY_CPU_NAME("ck803er2", CK803,
231              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
232                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
233                  CSKY::AEK_HIGHREG)
234CSKY_CPU_NAME("ck803er3", CK803,
235              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
236                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
237                  CSKY::AEK_HIGHREG)
238CSKY_CPU_NAME("ck803ehr1", CK803,
239              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
240                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
241                  CSKY::AEK_HIGHREG)
242CSKY_CPU_NAME("ck803ehr2", CK803,
243              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
244                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
245                  CSKY::AEK_HIGHREG)
246CSKY_CPU_NAME("ck803ehr3", CK803,
247              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
248                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
249                  CSKY::AEK_HIGHREG)
250CSKY_CPU_NAME("ck803etr1", CK803,
251              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
252                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
253                  CSKY::AEK_HIGHREG)
254CSKY_CPU_NAME("ck803etr2", CK803,
255              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
256                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
257                  CSKY::AEK_HIGHREG)
258CSKY_CPU_NAME("ck803etr3", CK803,
259              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
260                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
261                  CSKY::AEK_HIGHREG)
262CSKY_CPU_NAME("ck803ehtr1", CK803,
263              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
264                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
265                  CSKY::AEK_HIGHREG)
266CSKY_CPU_NAME("ck803ehtr2", CK803,
267              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
268                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
269                  CSKY::AEK_HIGHREG)
270CSKY_CPU_NAME("ck803ehtr3", CK803,
271              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
272                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
273                  CSKY::AEK_HIGHREG)
274CSKY_CPU_NAME("ck803efr1", CK803,
275              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
276                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
277                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
278                  CSKY::AEK_HIGHREG)
279CSKY_CPU_NAME("ck803efr2", CK803,
280              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
281                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
282                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
283                  CSKY::AEK_HIGHREG)
284CSKY_CPU_NAME("ck803efr3", CK803,
285              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
286                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
287                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
288                  CSKY::AEK_HIGHREG)
289CSKY_CPU_NAME("ck803efhr1", CK803,
290              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
291                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
292                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
293                  CSKY::AEK_HIGHREG)
294CSKY_CPU_NAME("ck803efhr2", CK803,
295              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
296                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
297                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
298                  CSKY::AEK_HIGHREG)
299CSKY_CPU_NAME("ck803efhr3", CK803,
300              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
301                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
302                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
303                  CSKY::AEK_HIGHREG)
304CSKY_CPU_NAME("ck803ftr1", CK803,
305              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
306                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
307CSKY_CPU_NAME("ck803ftr2", CK803,
308              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
309                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
310CSKY_CPU_NAME("ck803ftr3", CK803,
311              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
312                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
313CSKY_CPU_NAME("ck803eftr1", CK803,
314              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
315                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
316                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
317                  CSKY::AEK_HIGHREG)
318CSKY_CPU_NAME("ck803eftr2", CK803,
319              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
320                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
321                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
322                  CSKY::AEK_HIGHREG)
323CSKY_CPU_NAME("ck803eftr3", CK803,
324              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
325                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
326                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
327                  CSKY::AEK_HIGHREG)
328CSKY_CPU_NAME("ck803efhtr1", CK803,
329              CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
330                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
331                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
332                  CSKY::AEK_HIGHREG)
333CSKY_CPU_NAME("ck803efhtr2", CK803,
334              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
335                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
336                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
337                  CSKY::AEK_HIGHREG)
338CSKY_CPU_NAME("ck803efhtr3", CK803,
339              CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
340                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
341                  CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
342                  CSKY::AEK_HIGHREG)
343CSKY_CPU_NAME("s803", CK803, CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
344CSKY_CPU_NAME("s803t", CK803, CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
345CSKY_CPU_NAME("e803", CK803, CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
346CSKY_CPU_NAME("e803t", CK803, CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3)
347
348CSKY_CPU_NAME("ck803s", CK803S, CSKY::AEK_NONE)
349CSKY_CPU_NAME("ck803st", CK803S, CSKY::AEK_NONE)
350CSKY_CPU_NAME("ck803se", CK803S,
351              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
352CSKY_CPU_NAME("ck803sf", CK803S,
353              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
354CSKY_CPU_NAME("ck803sef", CK803S,
355              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
356                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
357CSKY_CPU_NAME("ck803seft", CK803S,
358              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
359                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
360
361CSKY_CPU_NAME("ck804", CK804, CSKY::AEK_NONE)
362CSKY_CPU_NAME("ck804h", CK804, CSKY::AEK_NONE)
363CSKY_CPU_NAME("ck804t", CK804, CSKY::AEK_NONE)
364CSKY_CPU_NAME("ck804ht", CK804, CSKY::AEK_NONE)
365CSKY_CPU_NAME("ck804f", CK804,
366              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
367CSKY_CPU_NAME("ck804fh", CK804,
368              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
369CSKY_CPU_NAME("ck804e", CK804,
370              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
371                  CSKY::AEK_HIGHREG)
372CSKY_CPU_NAME("ck804eh", CK804,
373              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
374                  CSKY::AEK_HIGHREG)
375CSKY_CPU_NAME("ck804et", CK804,
376              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
377                  CSKY::AEK_HIGHREG)
378CSKY_CPU_NAME("ck804eht", CK804,
379              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
380                  CSKY::AEK_HIGHREG)
381CSKY_CPU_NAME("ck804ef", CK804,
382              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
383                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
384                  CSKY::AEK_HIGHREG)
385CSKY_CPU_NAME("ck804efh", CK804,
386              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
387                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
388                  CSKY::AEK_HIGHREG)
389CSKY_CPU_NAME("ck804ft", CK804,
390              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
391CSKY_CPU_NAME("ck804eft", CK804,
392              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
393                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
394                  CSKY::AEK_HIGHREG)
395CSKY_CPU_NAME("ck804efht", CK804,
396              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
397                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
398                  CSKY::AEK_HIGHREG)
399CSKY_CPU_NAME("e804d", CK804,
400              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
401                  CSKY::AEK_HIGHREG)
402CSKY_CPU_NAME("e804dt", CK804,
403              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
404                  CSKY::AEK_HIGHREG)
405CSKY_CPU_NAME("e804f", CK804,
406              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
407CSKY_CPU_NAME("e804ft", CK804,
408              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
409CSKY_CPU_NAME("e804df", CK804,
410              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
411                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
412                  CSKY::AEK_HIGHREG)
413CSKY_CPU_NAME("e804dft", CK804,
414              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
415                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
416                  CSKY::AEK_HIGHREG)
417
418CSKY_CPU_NAME("ck805", CK805, CSKY::AEK_NONE)
419CSKY_CPU_NAME("ck805e", CK805,
420              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3)
421CSKY_CPU_NAME("ck805f", CK805,
422              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
423CSKY_CPU_NAME("ck805t", CK805, CSKY::AEK_NONE)
424CSKY_CPU_NAME("ck805ef", CK805,
425              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
426                  CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
427CSKY_CPU_NAME("ck805et", CK805,
428              CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3)
429CSKY_CPU_NAME("ck805ft", CK805,
430              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
431CSKY_CPU_NAME("ck805eft", CK805,
432              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3 |
433                  CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3)
434CSKY_CPU_NAME("i805", CK805, CSKY::AEK_NONE)
435CSKY_CPU_NAME("i805f", CK805,
436              CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E3)
437
438CSKY_CPU_NAME("ck807", CK807, CSKY::AEK_NONE)
439CSKY_CPU_NAME("ck807e", CK807,
440              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60)
441CSKY_CPU_NAME("ck807f", CK807,
442              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
443                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
444                  CSKY::AEK_FLOAT3E4)
445CSKY_CPU_NAME("ck807ef", CK807,
446              CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
447                  CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
448                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
449                  CSKY::AEK_FLOAT3E4)
450CSKY_CPU_NAME("c807", CK807, CSKY::AEK_NONE)
451CSKY_CPU_NAME("c807f", CK807,
452              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
453                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
454                  CSKY::AEK_FLOAT3E4)
455CSKY_CPU_NAME("r807", CK807, CSKY::AEK_NONE)
456CSKY_CPU_NAME("r807f", CK807,
457              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
458                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
459                  CSKY::AEK_FLOAT3E4)
460
461CSKY_CPU_NAME("ck810e", CK810, CSKY::AEK_NONE)
462CSKY_CPU_NAME("ck810et", CK810, CSKY::AEK_NONE)
463CSKY_CPU_NAME("ck810ef", CK810,
464              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
465                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
466CSKY_CPU_NAME("ck810eft", CK810,
467              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
468                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
469CSKY_CPU_NAME("ck810", CK810, CSKY::AEK_NONE)
470CSKY_CPU_NAME("ck810f", CK810,
471              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
472                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
473CSKY_CPU_NAME("ck810t", CK810, CSKY::AEK_NONE)
474CSKY_CPU_NAME("ck810ft", CK810,
475              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
476                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
477CSKY_CPU_NAME("c810", CK810,
478              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
479                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
480CSKY_CPU_NAME("c810t", CK810,
481              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
482                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
483
484CSKY_CPU_NAME("ck810v", CK810V, CSKY::AEK_NONE)
485CSKY_CPU_NAME("ck810ev", CK810V, CSKY::AEK_NONE)
486CSKY_CPU_NAME("ck810tv", CK810V, CSKY::AEK_NONE)
487CSKY_CPU_NAME("ck810etv", CK810V, CSKY::AEK_NONE)
488CSKY_CPU_NAME("c810v", CK810V,
489              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
490                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
491CSKY_CPU_NAME("ck810fv", CK810V,
492              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
493                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
494CSKY_CPU_NAME("ck810efv", CK810V,
495              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
496                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
497CSKY_CPU_NAME("ck810ftv", CK810V,
498              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
499                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
500CSKY_CPU_NAME("c810tv", CK810V,
501              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
502                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
503CSKY_CPU_NAME("c810eftv", CK810V,
504              CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
505                  CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2)
506
507CSKY_CPU_NAME("ck860", CK860, CSKY::AEK_NONE)
508CSKY_CPU_NAME("ck860f", CK860,
509              CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
510                  CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60)
511CSKY_CPU_NAME("c860", CK860,
512              CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
513                  CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60)
514
515CSKY_CPU_NAME("ck860v", CK860V, CSKY::AEK_NONE)
516CSKY_CPU_NAME("ck860fv", CK860V,
517              CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
518                  CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60)
519CSKY_CPU_NAME("c860v", CK860V,
520              CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
521                  CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60)
522// Invalid CPU
523CSKY_CPU_NAME("invalid", INVALID, CSKY::AEK_INVALID)
524#undef CSKY_CPU_NAME
525