xref: /llvm-project/llvm/unittests/TargetParser/CSKYTargetParserTest.cpp (revision bb6df0804ba0a0b0581aec4156138f5144dbcee2)
1 //===-------- CSKYTargetParser.cpp - CSKY Target Parser -------------------===//
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 #include "llvm/TargetParser/CSKYTargetParser.h"
10 #include "llvm/ADT/STLExtras.h"
11 #include "llvm/ADT/StringExtras.h"
12 #include "llvm/Support/CSKYAttributes.h"
13 #include "llvm/Support/FormatVariadic.h"
14 #include "llvm/TargetParser/TargetParser.h"
15 #include "gtest/gtest.h"
16 #include <string>
17 
18 using namespace llvm;
19 
20 namespace {
21 
FormatExtensionFlags(uint64_t Flags)22 std::string FormatExtensionFlags(uint64_t Flags) {
23   std::vector<StringRef> Features;
24 
25   if (Flags & CSKY::AEK_NONE)
26     Features.push_back("none");
27   CSKY::getExtensionFeatures(Flags, Features);
28 
29   Features.erase(std::remove_if(Features.begin(), Features.end(),
30                                 [](StringRef extension) {
31                                   return extension.starts_with("-");
32                                 }),
33                  Features.end());
34 
35   return llvm::join(Features, ", ");
36 }
37 
AssertSameExtensionFlags(const char * m_expr,const char * n_expr,uint64_t ExpectedFlags,uint64_t GotFlags)38 testing::AssertionResult AssertSameExtensionFlags(const char *m_expr,
39                                                   const char *n_expr,
40                                                   uint64_t ExpectedFlags,
41                                                   uint64_t GotFlags) {
42   if (ExpectedFlags == GotFlags)
43     return testing::AssertionSuccess();
44 
45   return testing::AssertionFailure()
46          << llvm::formatv("Expected extension flags: {0} ({1:x})\n"
47                           "     Got extension flags: {2} ({3:x})\n",
48                           FormatExtensionFlags(ExpectedFlags), ExpectedFlags,
49                           FormatExtensionFlags(GotFlags), GotFlags);
50 }
51 
52 struct CSKYCPUTestParams {
CSKYCPUTestParams__anonbd979a300111::CSKYCPUTestParams53   CSKYCPUTestParams(StringRef CPUName, StringRef ExpectedArch,
54                     uint64_t ExpectedFlags)
55       : CPUName(CPUName), ExpectedArch(ExpectedArch),
56         ExpectedFlags(ExpectedFlags) {}
57 
operator <<(std::ostream & os,const CSKYCPUTestParams & params)58   friend std::ostream &operator<<(std::ostream &os,
59                                   const CSKYCPUTestParams &params) {
60     return os << "\"" << params.CPUName.str() << "\", \""
61               << params.ExpectedArch.str() << "\", \"" << params.ExpectedFlags
62               << "\"";
63   }
64 
65   StringRef CPUName;
66   StringRef ExpectedArch;
67   uint64_t ExpectedFlags;
68 };
69 
70 class CSKYCPUTestFixture : public ::testing::TestWithParam<CSKYCPUTestParams> {
71 };
72 
TEST_P(CSKYCPUTestFixture,CSKYCPUTests)73 TEST_P(CSKYCPUTestFixture, CSKYCPUTests) {
74   auto params = GetParam();
75 
76   CSKY::ArchKind AK = CSKY::parseCPUArch(params.CPUName);
77   EXPECT_EQ(params.ExpectedArch, CSKY::getArchName(AK));
78 
79   uint64_t default_extensions = CSKY::getDefaultExtensions(params.CPUName);
80   EXPECT_PRED_FORMAT2(AssertSameExtensionFlags, params.ExpectedFlags,
81                       default_extensions);
82 }
83 
84 // Note that we include CSKY::AEK_NONE even when there are other extensions
85 // we expect. This is because the default extensions for a CPU are the sum
86 // of the default extensions for its architecture and for the CPU.
87 // So if a CPU has no extra extensions, it adds AEK_NONE.
88 INSTANTIATE_TEST_SUITE_P(
89     CSKYCPUTests, CSKYCPUTestFixture,
90     ::testing::Values(
91 
92         CSKYCPUTestParams("ck801", "ck801",
93                           CSKY::AEK_NONE | CSKY::MAEK_E1 | CSKY::AEK_TRUST),
94         CSKYCPUTestParams("ck801t", "ck801",
95                           CSKY::AEK_NONE | CSKY::MAEK_E1 | CSKY::AEK_TRUST),
96         CSKYCPUTestParams("e801", "ck801",
97                           CSKY::AEK_NONE | CSKY::MAEK_E1 | CSKY::AEK_TRUST),
98 
99         CSKYCPUTestParams("ck802", "ck802",
100                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
101                               CSKY::AEK_NVIC),
102         CSKYCPUTestParams("ck802t", "ck802",
103                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
104                               CSKY::AEK_NVIC),
105         CSKYCPUTestParams("ck802j", "ck802",
106                           CSKY::AEK_JAVA | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
107                               CSKY::AEK_NVIC),
108         CSKYCPUTestParams("e802", "ck802",
109                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
110                               CSKY::AEK_NVIC),
111         CSKYCPUTestParams("e802t", "ck802",
112                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
113                               CSKY::AEK_NVIC),
114         CSKYCPUTestParams("s802", "ck802",
115                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
116                               CSKY::AEK_NVIC),
117         CSKYCPUTestParams("s802t", "ck802",
118                           CSKY::AEK_NONE | CSKY::MAEK_E2 | CSKY::AEK_TRUST |
119                               CSKY::AEK_NVIC),
120 
121         CSKYCPUTestParams("ck803", "ck803",
122                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
123                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
124                               CSKY::AEK_HWDIV),
125         CSKYCPUTestParams("ck803h", "ck803",
126                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
127                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
128                               CSKY::AEK_HWDIV),
129         CSKYCPUTestParams("ck803t", "ck803",
130                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
131                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
132                               CSKY::AEK_HWDIV),
133         CSKYCPUTestParams("ck803ht", "ck803",
134                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
135                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
136                               CSKY::AEK_HWDIV),
137         CSKYCPUTestParams("ck803f", "ck803",
138                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
139                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
140                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
141                               CSKY::AEK_HWDIV),
142         CSKYCPUTestParams("ck803fh", "ck803",
143                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
144                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
145                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
146                               CSKY::AEK_HWDIV),
147         CSKYCPUTestParams("ck803e", "ck803",
148                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
149                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
150                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
151         CSKYCPUTestParams("ck803eh", "ck803",
152                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
153                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
154                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
155         CSKYCPUTestParams("ck803et", "ck803",
156                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
157                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
158                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
159         CSKYCPUTestParams("ck803eht", "ck803",
160                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
161                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
162                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
163         CSKYCPUTestParams("ck803ef", "ck803",
164                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
165                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
166                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
167                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
168                               CSKY::AEK_HWDIV),
169         CSKYCPUTestParams("ck803efh", "ck803",
170                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
171                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
172                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
173                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
174                               CSKY::AEK_HWDIV),
175         CSKYCPUTestParams("ck803ft", "ck803",
176                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
177                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
178                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
179                               CSKY::AEK_HWDIV),
180         CSKYCPUTestParams("ck803eft", "ck803",
181                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
182                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
183                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
184                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
185                               CSKY::AEK_HWDIV),
186         CSKYCPUTestParams("ck803efht", "ck803",
187                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
188                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
189                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
190                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
191                               CSKY::AEK_HWDIV),
192         CSKYCPUTestParams("ck803r1", "ck803",
193                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
194                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
195                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
196         CSKYCPUTestParams("ck803r2", "ck803",
197                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
198                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
199                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
200         CSKYCPUTestParams("ck803r3", "ck803",
201                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
202                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
203                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
204         CSKYCPUTestParams("ck803hr1", "ck803",
205                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
206                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
207                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
208         CSKYCPUTestParams("ck803hr2", "ck803",
209                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
210                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
211                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
212         CSKYCPUTestParams("ck803hr3", "ck803",
213                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
214                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
215                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
216         CSKYCPUTestParams("ck803tr1", "ck803",
217                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
218                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
219                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
220         CSKYCPUTestParams("ck803tr2", "ck803",
221                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
222                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
223                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
224         CSKYCPUTestParams("ck803tr3", "ck803",
225                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
226                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
227                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
228         CSKYCPUTestParams("ck803htr1", "ck803",
229                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
230                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
231                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
232         CSKYCPUTestParams("ck803htr2", "ck803",
233                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
234                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
235                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
236         CSKYCPUTestParams("ck803htr3", "ck803",
237                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
238                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
239                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
240         CSKYCPUTestParams("ck803fr1", "ck803",
241                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
242                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
243                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
244                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
245                               CSKY::AEK_HWDIV),
246         CSKYCPUTestParams("ck803fr2", "ck803",
247                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
248                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
249                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
250                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
251                               CSKY::AEK_HWDIV),
252         CSKYCPUTestParams("ck803fr3", "ck803",
253                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
254                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
255                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
256                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
257                               CSKY::AEK_HWDIV),
258         CSKYCPUTestParams("ck803fhr1", "ck803",
259                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
260                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
261                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
262                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
263                               CSKY::AEK_HWDIV),
264         CSKYCPUTestParams("ck803fhr2", "ck803",
265                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
266                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
267                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
268                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
269                               CSKY::AEK_HWDIV),
270         CSKYCPUTestParams("ck803fhr3", "ck803",
271                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
272                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
273                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
274                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
275                               CSKY::AEK_HWDIV),
276         CSKYCPUTestParams("ck803er1", "ck803",
277                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
278                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
279                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
280                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
281                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
282         CSKYCPUTestParams("ck803er2", "ck803",
283                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
284                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
285                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
286                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
287                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
288         CSKYCPUTestParams("ck803er3", "ck803",
289                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
290                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
291                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
292                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
293                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
294         CSKYCPUTestParams("ck803ehr1", "ck803",
295                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
296                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
297                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
298                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
299                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
300         CSKYCPUTestParams("ck803ehr2", "ck803",
301                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
302                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
303                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
304                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
305                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
306         CSKYCPUTestParams("ck803ehr3", "ck803",
307                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
308                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
309                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
310                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
311                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
312         CSKYCPUTestParams("ck803etr1", "ck803",
313                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
314                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
315                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
316                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
317                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
318         CSKYCPUTestParams("ck803etr2", "ck803",
319                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
320                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
321                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
322                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
323                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
324         CSKYCPUTestParams("ck803etr3", "ck803",
325                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
326                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
327                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
328                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
329                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
330         CSKYCPUTestParams("ck803ehtr1", "ck803",
331                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
332                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
333                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
334                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
335                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
336         CSKYCPUTestParams("ck803ehtr2", "ck803",
337                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
338                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
339                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
340                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
341                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
342         CSKYCPUTestParams("ck803ehtr3", "ck803",
343                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
344                               CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
345                               CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
346                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
347                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
348         CSKYCPUTestParams("ck803efr1", "ck803",
349                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
350                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
351                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
352                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
353                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
354                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
355                               CSKY::AEK_HWDIV),
356         CSKYCPUTestParams("ck803efr2", "ck803",
357                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
358                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
359                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
360                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
361                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
362                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
363                               CSKY::AEK_HWDIV),
364         CSKYCPUTestParams("ck803efr3", "ck803",
365                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
366                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
367                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
368                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
369                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
370                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
371                               CSKY::AEK_HWDIV),
372         CSKYCPUTestParams("ck803efhr1", "ck803",
373                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
374                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
375                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
376                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
377                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
378                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
379                               CSKY::AEK_HWDIV),
380         CSKYCPUTestParams("ck803efhr2", "ck803",
381                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
382                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
383                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
384                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
385                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
386                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
387                               CSKY::AEK_HWDIV),
388         CSKYCPUTestParams("ck803efhr3", "ck803",
389                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
390                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
391                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
392                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
393                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
394                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
395                               CSKY::AEK_HWDIV),
396         CSKYCPUTestParams("ck803ftr1", "ck803",
397                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
398                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
399                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
400                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
401                               CSKY::AEK_HWDIV),
402         CSKYCPUTestParams("ck803ftr2", "ck803",
403                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
404                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
405                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
406                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
407                               CSKY::AEK_HWDIV),
408         CSKYCPUTestParams("ck803ftr3", "ck803",
409                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
410                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
411                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
412                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
413                               CSKY::AEK_HWDIV),
414         CSKYCPUTestParams("ck803eftr1", "ck803",
415                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
416                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
417                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
418                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
419                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
420                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
421                               CSKY::AEK_HWDIV),
422         CSKYCPUTestParams("ck803eftr2", "ck803",
423                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
424                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
425                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
426                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
427                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
428                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
429                               CSKY::AEK_HWDIV),
430         CSKYCPUTestParams("ck803eftr3", "ck803",
431                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
432                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
433                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
434                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
435                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
436                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
437                               CSKY::AEK_HWDIV),
438         CSKYCPUTestParams("ck803efhtr1", "ck803",
439                           CSKY::MAEK_3E3R1 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
440                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
441                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
442                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
443                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
444                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
445                               CSKY::AEK_HWDIV),
446         CSKYCPUTestParams("ck803efhtr2", "ck803",
447                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
448                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
449                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
450                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
451                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
452                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
453                               CSKY::AEK_HWDIV),
454         CSKYCPUTestParams("ck803efhtr3", "ck803",
455                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_DSPV2 |
456                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
457                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_EDSP |
458                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
459                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
460                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
461                               CSKY::AEK_HWDIV),
462         CSKYCPUTestParams("s803", "ck803",
463                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::MAEK_2E3 |
464                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
465                               CSKY::AEK_HWDIV),
466         CSKYCPUTestParams("s803t", "ck803",
467                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::MAEK_2E3 |
468                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
469                               CSKY::AEK_HWDIV),
470         CSKYCPUTestParams("e803", "ck803",
471                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::MAEK_2E3 |
472                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
473                               CSKY::AEK_HWDIV),
474         CSKYCPUTestParams("e803t", "ck803",
475                           CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::MAEK_2E3 |
476                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
477                               CSKY::AEK_HWDIV),
478 
479         CSKYCPUTestParams("ck803s", "ck803s",
480                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
481                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
482                               CSKY::AEK_HWDIV),
483         CSKYCPUTestParams("ck803st", "ck803s",
484                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
485                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
486                               CSKY::AEK_HWDIV),
487         CSKYCPUTestParams("ck803se", "ck803s",
488                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
489                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
490                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV),
491         CSKYCPUTestParams("ck803sf", "ck803s",
492                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
493                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
494                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
495                               CSKY::AEK_HWDIV),
496         CSKYCPUTestParams("ck803sef", "ck803s",
497                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
498                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
499                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
500                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
501                               CSKY::AEK_HWDIV),
502         CSKYCPUTestParams("ck803seft", "ck803s",
503                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
504                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
505                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
506                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
507                               CSKY::AEK_HWDIV),
508 
509         CSKYCPUTestParams("ck804", "ck804",
510                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
511                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
512                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
513                               CSKY::AEK_3E3R3),
514         CSKYCPUTestParams("ck804h", "ck804",
515                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
516                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
517                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
518                               CSKY::AEK_3E3R3),
519         CSKYCPUTestParams("ck804t", "ck804",
520                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
521                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
522                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
523                               CSKY::AEK_3E3R3),
524         CSKYCPUTestParams("ck804ht", "ck804",
525                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
526                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
527                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
528                               CSKY::AEK_3E3R3),
529         CSKYCPUTestParams("ck804f", "ck804",
530                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
531                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
532                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
533                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
534                               CSKY::AEK_3E3R3),
535         CSKYCPUTestParams("ck804fh", "ck804",
536                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
537                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
538                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
539                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
540                               CSKY::AEK_3E3R3),
541         CSKYCPUTestParams("ck804e", "ck804",
542                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
543                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
544                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
545                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
546                               CSKY::AEK_3E3R3),
547         CSKYCPUTestParams("ck804eh", "ck804",
548                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
549                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
550                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
551                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
552                               CSKY::AEK_3E3R3),
553         CSKYCPUTestParams("ck804et", "ck804",
554                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
555                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
556                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
557                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
558                               CSKY::AEK_3E3R3),
559         CSKYCPUTestParams("ck804eht", "ck804",
560                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
561                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
562                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
563                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
564                               CSKY::AEK_3E3R3),
565         CSKYCPUTestParams("ck804ef", "ck804",
566                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
567                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
568                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
569                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
570                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
571                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
572         CSKYCPUTestParams("ck804efh", "ck804",
573                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
574                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
575                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
576                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
577                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
578                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
579         CSKYCPUTestParams("ck804ft", "ck804",
580                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
581                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
582                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
583                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
584                               CSKY::AEK_3E3R3),
585         CSKYCPUTestParams("ck804eft", "ck804",
586                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
587                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
588                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
589                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
590                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
591                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
592         CSKYCPUTestParams("ck804efht", "ck804",
593                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
594                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
595                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
596                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
597                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
598                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
599         CSKYCPUTestParams("e804d", "ck804",
600                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
601                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
602                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
603                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
604                               CSKY::AEK_3E3R3),
605         CSKYCPUTestParams("e804dt", "ck804",
606                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
607                               CSKY::AEK_HIGHREG | CSKY::MAEK_2E3 |
608                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
609                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
610                               CSKY::AEK_3E3R3),
611         CSKYCPUTestParams("e804f", "ck804",
612                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
613                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
614                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
615                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
616                               CSKY::AEK_3E3R3),
617         CSKYCPUTestParams("e804ft", "ck804",
618                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
619                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
620                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
621                               CSKY::AEK_HWDIV | CSKY::MAEK_3E3R2 |
622                               CSKY::AEK_3E3R3),
623         CSKYCPUTestParams("e804df", "ck804",
624                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
625                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
626                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
627                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
628                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
629                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
630         CSKYCPUTestParams("e804dft", "ck804",
631                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
632                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
633                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_HIGHREG |
634                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
635                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
636                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
637 
638         CSKYCPUTestParams("ck805", "ck805",
639                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
640                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
641                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
642                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
643                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
644         CSKYCPUTestParams("ck805e", "ck805",
645                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
646                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
647                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
648                               CSKY::AEK_HIGHREG | CSKY::MAEK_3E3R2 |
649                               CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 |
650                               CSKY::AEK_VDSP2E3),
651         CSKYCPUTestParams("ck805f", "ck805",
652                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
653                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
654                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
655                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
656                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
657                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
658         CSKYCPUTestParams("ck805t", "ck805",
659                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
660                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
661                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
662                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
663                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
664         CSKYCPUTestParams("ck805ef", "ck805",
665                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
666                               CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
667                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
668                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
669                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
670                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
671                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
672         CSKYCPUTestParams("ck805et", "ck805",
673                           CSKY::AEK_DSPV2 | CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
674                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
675                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
676                               CSKY::AEK_HIGHREG | CSKY::MAEK_3E3R2 |
677                               CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 |
678                               CSKY::AEK_VDSP2E3),
679         CSKYCPUTestParams("ck805ft", "ck805",
680                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
681                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
682                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
683                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
684                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
685                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
686         CSKYCPUTestParams("ck805eft", "ck805",
687                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
688                               CSKY::AEK_FLOAT1E3 | CSKY::AEK_DSPV2 |
689                               CSKY::AEK_3E3R1 | CSKY::AEK_3E3R3 |
690                               CSKY::MAEK_2E3 | CSKY::AEK_MP | CSKY::AEK_TRUST |
691                               CSKY::AEK_NVIC | CSKY::AEK_HWDIV |
692                               CSKY::AEK_HIGHREG | CSKY::MAEK_3E3R2 |
693                               CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 |
694                               CSKY::AEK_VDSP2E3),
695         CSKYCPUTestParams("i805", "ck805",
696                           CSKY::AEK_NONE | CSKY::MAEK_2E3 | CSKY::AEK_MP |
697                               CSKY::AEK_TRUST | CSKY::AEK_NVIC |
698                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
699                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
700                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
701         CSKYCPUTestParams("i805f", "ck805",
702                           CSKY::AEK_FPUV2SF | CSKY::AEK_FLOATE1 |
703                               CSKY::AEK_FLOAT1E3 | CSKY::MAEK_2E3 |
704                               CSKY::AEK_MP | CSKY::AEK_TRUST | CSKY::AEK_NVIC |
705                               CSKY::AEK_HWDIV | CSKY::AEK_HIGHREG |
706                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
707                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E3),
708 
709         CSKYCPUTestParams("ck807", "ck807",
710                           CSKY::AEK_NONE | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
711                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
712                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
713                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
714                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
715                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
716         CSKYCPUTestParams("ck807e", "ck807",
717                           CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
718                               CSKY::MAEK_3E7 | CSKY::MAEK_MP |
719                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
720                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
721                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
722                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
723                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
724         CSKYCPUTestParams(
725             "ck807f", "ck807",
726             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
727                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
728                 CSKY::AEK_FLOAT3E4 | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
729                 CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST | CSKY::AEK_HWDIV |
730                 CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
731                 CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
732                 CSKY::AEK_CACHE),
733         CSKYCPUTestParams(
734             "ck807ef", "ck807",
735             CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
736                 CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
737                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
738                 CSKY::AEK_FLOAT3E4 | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
739                 CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST | CSKY::AEK_HWDIV |
740                 CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
741                 CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
742                 CSKY::AEK_CACHE),
743         CSKYCPUTestParams("c807", "ck807",
744                           CSKY::AEK_NONE | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
745                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
746                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
747                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
748                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
749                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
750         CSKYCPUTestParams(
751             "c807f", "ck807",
752             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
753                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
754                 CSKY::AEK_FLOAT3E4 | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
755                 CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST | CSKY::AEK_HWDIV |
756                 CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
757                 CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
758                 CSKY::AEK_CACHE),
759 
760         CSKYCPUTestParams("r807", "ck807",
761                           CSKY::AEK_NONE | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
762                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
763                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
764                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
765                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
766                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
767         CSKYCPUTestParams(
768             "r807f", "ck807",
769             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
770                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::AEK_FLOAT1E3 |
771                 CSKY::AEK_FLOAT3E4 | CSKY::MAEK_3E7 | CSKY::MAEK_MP |
772                 CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST | CSKY::AEK_HWDIV |
773                 CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
774                 CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP | CSKY::AEK_NVIC |
775                 CSKY::AEK_CACHE),
776 
777         CSKYCPUTestParams("ck810e", "ck810",
778                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
779                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
780                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
781                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
782                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
783                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
784 
785         CSKYCPUTestParams("ck810et", "ck810",
786                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
787                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
788                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
789                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
790                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
791                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
792         CSKYCPUTestParams(
793             "ck810ef", "ck810",
794             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
795                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
796                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
797                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
798                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
799                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
800         CSKYCPUTestParams(
801             "ck810eft", "ck810",
802             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
803                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
804                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
805                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
806                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
807                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
808         CSKYCPUTestParams("ck810", "ck810",
809                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
810                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
811                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
812                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
813                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
814                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
815         CSKYCPUTestParams(
816             "ck810f", "ck810",
817             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
818                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
819                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
820                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
821                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
822                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
823         CSKYCPUTestParams("ck810t", "ck810",
824                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
825                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
826                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
827                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
828                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
829                               CSKY::AEK_NVIC | CSKY::AEK_CACHE),
830         CSKYCPUTestParams(
831             "ck810ft", "ck810",
832             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
833                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
834                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
835                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
836                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
837                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
838         CSKYCPUTestParams(
839             "c810", "ck810",
840             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
841                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
842                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
843                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
844                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
845                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
846         CSKYCPUTestParams(
847             "c810t", "ck810",
848             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
849                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
850                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
851                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
852                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
853                 CSKY::AEK_NVIC | CSKY::AEK_CACHE),
854 
855         CSKYCPUTestParams("ck810v", "ck810v",
856                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
857                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
858                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
859                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
860                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
861                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
862                               CSKY::AEK_VDSPV1),
863 
864         CSKYCPUTestParams("ck810ev", "ck810v",
865                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
866                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
867                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
868                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
869                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
870                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
871                               CSKY::AEK_VDSPV1),
872 
873         CSKYCPUTestParams("ck810tv", "ck810v",
874                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
875                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
876                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
877                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
878                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
879                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
880                               CSKY::AEK_VDSPV1),
881 
882         CSKYCPUTestParams("ck810etv", "ck810v",
883                           CSKY::AEK_NONE | CSKY::MAEK_7E10 | CSKY::MAEK_MP |
884                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
885                               CSKY::AEK_HWDIV | CSKY::AEK_EDSP |
886                               CSKY::AEK_DSP1E2 | CSKY::AEK_DSPE60 |
887                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
888                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
889                               CSKY::AEK_VDSPV1),
890 
891         CSKYCPUTestParams(
892             "c810v", "ck810v",
893             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
894                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
895                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
896                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
897                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
898                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
899 
900         CSKYCPUTestParams(
901             "ck810fv", "ck810v",
902             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
903                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
904                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
905                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
906                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
907                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
908 
909         CSKYCPUTestParams(
910             "ck810efv", "ck810v",
911             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
912                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
913                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
914                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
915                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
916                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
917 
918         CSKYCPUTestParams(
919             "ck810ftv", "ck810v",
920             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
921                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
922                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
923                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
924                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
925                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
926 
927         CSKYCPUTestParams(
928             "c810tv", "ck810v",
929             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
930                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
931                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
932                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
933                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
934                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
935 
936         CSKYCPUTestParams(
937             "c810eftv", "ck810v",
938             CSKY::AEK_FPUV2SF | CSKY::AEK_FPUV2DF | CSKY::AEK_FDIVDU |
939                 CSKY::AEK_FLOATE1 | CSKY::AEK_FLOAT1E2 | CSKY::MAEK_7E10 |
940                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
941                 CSKY::AEK_HWDIV | CSKY::AEK_EDSP | CSKY::AEK_DSP1E2 |
942                 CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
943                 CSKY::AEK_NVIC | CSKY::AEK_CACHE | CSKY::AEK_VDSPV1),
944 
945         CSKYCPUTestParams("ck860", "ck860",
946                           CSKY::AEK_NONE | CSKY::MAEK_10E60 | CSKY::MAEK_MP |
947                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
948                               CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 |
949                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
950                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
951                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
952 
953         CSKYCPUTestParams(
954             "ck860f", "ck860",
955             CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
956                 CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60 | CSKY::MAEK_10E60 |
957                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
958                 CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
959                 CSKY::AEK_HARDTP | CSKY::AEK_NVIC | CSKY::AEK_CACHE |
960                 CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
961 
962         CSKYCPUTestParams(
963             "c860", "ck860",
964             CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
965                 CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60 | CSKY::MAEK_10E60 |
966                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
967                 CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
968                 CSKY::AEK_HARDTP | CSKY::AEK_NVIC | CSKY::AEK_CACHE |
969                 CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3),
970 
971         CSKYCPUTestParams("ck860v", "ck860v",
972                           CSKY::AEK_NONE | CSKY::MAEK_10E60 | CSKY::MAEK_MP |
973                               CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
974                               CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 |
975                               CSKY::AEK_HIGHREG | CSKY::AEK_HARDTP |
976                               CSKY::AEK_NVIC | CSKY::AEK_CACHE |
977                               CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 |
978                               CSKY::AEK_VDSPV2 | CSKY::AEK_VDSP2E60F),
979 
980         CSKYCPUTestParams(
981             "ck860fv", "ck860v",
982             CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
983                 CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60 | CSKY::MAEK_10E60 |
984                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
985                 CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
986                 CSKY::AEK_HARDTP | CSKY::AEK_NVIC | CSKY::AEK_CACHE |
987                 CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 |
988                 CSKY::AEK_VDSP2E60F),
989 
990         CSKYCPUTestParams(
991             "c860v", "ck860v",
992             CSKY::AEK_FPUV3HI | CSKY::AEK_FPUV3HF | CSKY::AEK_FPUV3SF |
993                 CSKY::AEK_FPUV3DF | CSKY::AEK_FLOAT7E60 | CSKY::MAEK_10E60 |
994                 CSKY::MAEK_MP | CSKY::MAEK_MP1E2 | CSKY::AEK_TRUST |
995                 CSKY::AEK_HWDIV | CSKY::AEK_DSPE60 | CSKY::AEK_HIGHREG |
996                 CSKY::AEK_HARDTP | CSKY::AEK_NVIC | CSKY::AEK_CACHE |
997                 CSKY::MAEK_3E3R2 | CSKY::AEK_3E3R3 | CSKY::AEK_VDSPV2 |
998                 CSKY::AEK_VDSP2E60F)));
999 
1000 static constexpr unsigned NumCSKYCPUArchs = 145;
1001 
TEST(TargetParserTest,testCSKYCPUArchList)1002 TEST(TargetParserTest, testCSKYCPUArchList) {
1003   SmallVector<StringRef, NumCSKYCPUArchs> List;
1004   CSKY::fillValidCPUArchList(List);
1005 
1006   // No list exists for these in this test suite, so ensure all are
1007   // valid, and match the expected 'magic' count.
1008   EXPECT_EQ(List.size(), NumCSKYCPUArchs);
1009   for (StringRef CPU : List) {
1010     EXPECT_NE(CSKY::parseCPUArch(CPU), CSKY::ArchKind::INVALID);
1011   }
1012 }
1013 
TEST(TargetParserTest,testInvalidCSKYArch)1014 TEST(TargetParserTest, testInvalidCSKYArch) {
1015   auto InvalidArchStrings = {"ckv", "ckv99", "nock"};
1016   for (const char *InvalidArch : InvalidArchStrings)
1017     EXPECT_EQ(CSKY::parseArch(InvalidArch), CSKY::ArchKind::INVALID);
1018 }
1019 
testCSKYArch(StringRef Arch,StringRef DefaultCPU)1020 bool testCSKYArch(StringRef Arch, StringRef DefaultCPU) {
1021   CSKY::ArchKind AK = CSKY::parseArch(Arch);
1022   bool Result = (AK != CSKY::ArchKind::INVALID);
1023   Result &= CSKY::getDefaultCPU(Arch) == DefaultCPU;
1024   return Result;
1025 }
1026 
TEST(TargetParserTest,testCSKYArch)1027 TEST(TargetParserTest, testCSKYArch) {
1028   EXPECT_TRUE(testCSKYArch("ck801", "ck801"));
1029   EXPECT_TRUE(testCSKYArch("ck802", "ck802"));
1030   EXPECT_TRUE(testCSKYArch("ck803", "ck803"));
1031   EXPECT_TRUE(testCSKYArch("ck803s", "ck803s"));
1032   EXPECT_TRUE(testCSKYArch("ck804", "ck804"));
1033   EXPECT_TRUE(testCSKYArch("ck805", "ck805"));
1034   EXPECT_TRUE(testCSKYArch("ck807", "ck807"));
1035   EXPECT_TRUE(testCSKYArch("ck810", "ck810"));
1036   EXPECT_TRUE(testCSKYArch("ck810v", "ck810v"));
1037   EXPECT_TRUE(testCSKYArch("ck860", "ck860"));
1038   EXPECT_TRUE(testCSKYArch("ck860v", "ck860v"));
1039 }
1040 
TEST(TargetParserTest,CSKYFPUVersion)1041 TEST(TargetParserTest, CSKYFPUVersion) {
1042   for (CSKY::CSKYFPUKind FK = static_cast<CSKY::CSKYFPUKind>(0);
1043        FK <= CSKY::CSKYFPUKind::FK_LAST;
1044        FK = static_cast<CSKY::CSKYFPUKind>(static_cast<unsigned>(FK) + 1))
1045     if (FK == CSKY::FK_LAST || CSKY::getFPUName(FK) == "invalid")
1046       EXPECT_EQ(CSKY::FPUVersion::NONE, CSKY::getFPUVersion(FK));
1047     else
1048       EXPECT_NE(CSKY::FPUVersion::NONE, CSKY::getFPUVersion(FK));
1049 }
1050 
TEST(TargetParserTest,CSKYExtensionFeatures)1051 TEST(TargetParserTest, CSKYExtensionFeatures) {
1052   std::map<uint64_t, std::vector<StringRef>> Extensions;
1053 
1054   for (auto &Ext : CSKY::CSKYARCHExtNames) {
1055     if (Ext.Feature && Ext.NegFeature)
1056       Extensions[Ext.ID] = {StringRef(Ext.Feature), StringRef(Ext.NegFeature)};
1057   }
1058 
1059   std::vector<StringRef> Features;
1060 
1061   EXPECT_FALSE(CSKY::getExtensionFeatures(CSKY::AEK_INVALID, Features));
1062 
1063   for (auto &E : Extensions) {
1064     CSKY::getExtensionFeatures(E.first, Features);
1065     EXPECT_TRUE(llvm::is_contained(Features, E.second.at(0)));
1066   }
1067 
1068   EXPECT_EQ(Extensions.size(), Features.size());
1069 }
1070 
TEST(TargetParserTest,CSKYFPUFeatures)1071 TEST(TargetParserTest, CSKYFPUFeatures) {
1072   std::vector<StringRef> Features;
1073   for (CSKY::CSKYFPUKind FK = static_cast<CSKY::CSKYFPUKind>(0);
1074        FK <= CSKY::CSKYFPUKind::FK_LAST;
1075        FK = static_cast<CSKY::CSKYFPUKind>(static_cast<unsigned>(FK) + 1)) {
1076     if (FK == CSKY::FK_INVALID || FK >= CSKY::FK_LAST)
1077       EXPECT_FALSE(CSKY::getFPUFeatures(FK, Features));
1078     else
1079       EXPECT_TRUE(CSKY::getFPUFeatures(FK, Features));
1080   }
1081 }
1082 
TEST(TargetParserTest,CSKYArchExtFeature)1083 TEST(TargetParserTest, CSKYArchExtFeature) {
1084   const char *ArchExt[][4] = {
1085       {"fpuv2_sf", "nofpuv2_sf", "+fpuv2_sf", "-fpuv2_sf"},
1086       {"fpuv2_df", "nofpuv2_df", "+fpuv2_df", "-fpuv2_df"},
1087       {"fdivdu", "nofdivdu", "+fdivdu", "-fdivdu"},
1088       {"fpuv3_hi", "nofpuv3_hi", "+fpuv3_hi", "-fpuv3_hi"},
1089       {"fpuv3_hf", "nofpuv3_hf", "+fpuv3_hf", "-fpuv3_hf"},
1090       {"fpuv2_df", "nofpuv2_df", "+fpuv2_df", "-fpuv2_df"},
1091       {"fpuv3_sf", "nofpuv3_sf", "+fpuv3_sf", "-fpuv3_sf"},
1092       {"fpuv3_df", "nofpuv3_df", "+fpuv3_df", "-fpuv3_df"},
1093       {"floate1", "nofloate1", "+floate1", "-floate1"},
1094       {"float1e2", "nofloat1e2", "+float1e2", "-float1e2"},
1095       {"float1e3", "nofloat1e3", "+float1e3", "-float1e3"},
1096       {"float3e4", "nofloat3e4", "+float3e4", "-float3e4"},
1097       {"float7e60", "nofloat7e60", "+float7e60", "-float7e60"},
1098       {"hwdiv", "nohwdiv", "+hwdiv", "-hwdiv"},
1099       {"multiple_stld", "nomultiple_stld", "+multiple_stld", "-multiple_stld"},
1100       {"pushpop", "nopushpop", "+pushpop", "-pushpop"},
1101       {"edsp", "noedsp", "+edsp", "-edsp"},
1102       {"dsp1e2", "nodsp1e2", "+dsp1e2", "-dsp1e2"},
1103       {"dspe60", "nodspe60", "+dspe60", "-dspe60"},
1104       {"dspv2", "nodspv2", "+dspv2", "-dspv2"},
1105       {"dsp_silan", "nodsp_silan", "+dsp_silan", "-dsp_silan"},
1106       {"elrw", "noelrw", "+elrw", "-elrw"},
1107       {"trust", "notrust", "+trust", "-trust"},
1108       {"java", "nojava", "+java", "-java"},
1109       {"cache", "nocache", "+cache", "-cache"},
1110       {"nvic", "nonvic", "+nvic", "-nvic"},
1111       {"doloop", "nodoloop", "+doloop", "-doloop"},
1112       {"high-registers", "nohigh-registers", "+high-registers",
1113        "-high-registers"},
1114       {"smart", "nosmart", "+smart", "-smart"},
1115       {"vdsp2e3", "novdsp2e3", "+vdsp2e3", "-vdsp2e3"},
1116       {"vdsp2e60f", "novdsp2e60f", "+vdsp2e60f", "-vdsp2e60f"},
1117       {"vdspv2", "novdspv2", "+vdspv2", "-vdspv2"},
1118       {"hard-tp", "nohard-tp", "+hard-tp", "-hard-tp"},
1119       {"soft-tp", "nosoft-tp", "+soft-tp", "-soft-tp"},
1120       {"istack", "noistack", "+istack", "-istack"},
1121       {"constpool", "noconstpool", "+constpool", "-constpool"},
1122       {"stack-size", "nostack-size", "+stack-size", "-stack-size"},
1123       {"ccrt", "noccrt", "+ccrt", "-ccrt"},
1124       {"vdspv1", "novdspv1", "+vdspv1", "-vdspv1"},
1125       {"e1", "noe1", "+e1", "-e1"},
1126       {"e2", "noe2", "+e2", "-e2"},
1127       {"2e3", "no2e3", "+2e3", "-2e3"},
1128       {"mp", "nomp", "+mp", "-mp"},
1129       {"3e3r1", "no3e3r1", "+3e3r1", "-3e3r1"},
1130       {"3e3r2", "no3e3r2", "+3e3r2", "-3e3r2"},
1131       {"3e3r3", "no3e3r3", "+3e3r3", "-3e3r3"},
1132       {"3e7", "no3e7", "+3e7", "-3e7"},
1133       {"mp1e2", "nomp1e2", "+mp1e2", "-mp1e2"},
1134       {"7e10", "no7e10", "+7e10", "-7e10"},
1135       {"10e60", "no10e60", "+10e60", "-10e60"},
1136   };
1137 
1138   for (unsigned i = 0; i < std::size(ArchExt); i++) {
1139     EXPECT_EQ(StringRef(ArchExt[i][2]), CSKY::getArchExtFeature(ArchExt[i][0]));
1140     EXPECT_EQ(StringRef(ArchExt[i][3]), CSKY::getArchExtFeature(ArchExt[i][1]));
1141   }
1142 }
1143 
1144 } // namespace
1145