brintos

brintos / llvm-project-archived public Read only

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