Exemplo n.º 1
0
X86Architecture::X86Architecture(void)
  : Architecture(MEDUSA_ARCH_TAG('x','8','6'))
  , m_CpuInfo()
{
  Configuration::Enum ArchMdl;
  ArchMdl.push_back(std::make_pair("latest", X86_Arch_Latest));
  m_CfgMdl.InsertEnum("Architecture", ArchMdl, X86_Arch_Latest);

  Configuration::Enum VendorMdl;
  VendorMdl.push_back(std::make_pair("AMD", X86_ProcType_AMD));
  VendorMdl.push_back(std::make_pair("Intel", X86_ProcType_INTEL));
  VendorMdl.push_back(std::make_pair("IA64", X86_ProcType_IA64));
  VendorMdl.push_back(std::make_pair("Cyrix", X86_ProcType_CYRIX));
  VendorMdl.push_back(std::make_pair("IIT", X86_ProcType_IIT));
  m_CfgMdl.InsertEnum("Vendor", VendorMdl, X86_ProcType_INTEL);

  /* XXX: We don't have enough information about instructions origin to offer this option. */
  //Configuration::Enum FeatInt;
  //FeatInt.push_back(std::make_pair("8086",  X86_FeatInt_8086 ));
  //FeatInt.push_back(std::make_pair("80186", X86_FeatInt_80186));
  //FeatInt.push_back(std::make_pair("80286", X86_FeatInt_80286));
  //FeatInt.push_back(std::make_pair("80386", X86_FeatInt_80386));
  //FeatInt.push_back(std::make_pair("80486", X86_FeatInt_80486));
  //FeatInt.push_back(std::make_pair("80586", X86_FeatInt_80586));
  //FeatInt.push_back(std::make_pair("80686", X86_FeatInt_80686));
  //FeatInt.push_back(std::make_pair("80786", X86_FeatInt_80786));
  //FeatInt.push_back(std::make_pair("sse",   X86_FeatInt_Sse  ));
  //FeatInt.push_back(std::make_pair("sse2",  X86_FeatInt_Sse2 ));
  //FeatInt.push_back(std::make_pair("sse3",  X86_FeatInt_Sse3 ));
  //FeatInt.push_back(std::make_pair("svm",   X86_FeatInt_Svm  ));
  //FeatInt.push_back(std::make_pair("vmx",   X86_FeatInt_Vmx  ));
  //FeatInt.push_back(std::make_pair("sse4a", X86_FeatInt_Sse4a));
  //m_CfgMdl.InsertEnum("Integer feature", FeatInt, X86_FeatInt_Sse4a);

  //Configuration::Enum FeatFp;
  //FeatFp.push_back(std::make_pair("8087",  X86_FeatFp_8087 ));
  //FeatFp.push_back(std::make_pair("80287", X86_FeatFp_80287));
  //FeatFp.push_back(std::make_pair("80387", X86_FeatFp_80387));
  //FeatFp.push_back(std::make_pair("80487", X86_FeatFp_80487));
  //FeatFp.push_back(std::make_pair("80587", X86_FeatFp_80587));
  //m_CfgMdl.InsertEnum("Floating-point feature", FeatFp, X86_FeatFp_80587);

  //Configuration::Enum FeatSimd;
  //FeatSimd.push_back(std::make_pair("mmx",     X86_FeatSimd_Mmx    ));
  //FeatSimd.push_back(std::make_pair("mmx+",    X86_FeatSimd_MmxPlus));
  //FeatSimd.push_back(std::make_pair("emmx",    X86_FeatSimd_Emmx   ));
  //FeatSimd.push_back(std::make_pair("3dnow!",  X86_FeatSimd_3dNow  ));
  //FeatSimd.push_back(std::make_pair("sse",     X86_FeatSimd_Sse    ));
  //FeatSimd.push_back(std::make_pair("sse 2",   X86_FeatSimd_Sse2   ));
  //FeatSimd.push_back(std::make_pair("sse 3",   X86_FeatSimd_Sse3   ));
  //FeatSimd.push_back(std::make_pair("ssse 3",  X86_FeatSimd_Ssse3  ));
  //FeatSimd.push_back(std::make_pair("sse 4.1", X86_FeatSimd_Sse41  ));
  //FeatSimd.push_back(std::make_pair("sse 4a",  X86_FeatSimd_Sse4a  ));
  //FeatSimd.push_back(std::make_pair("sse 4.2", X86_FeatSimd_Sse42  ));
  //FeatSimd.push_back(std::make_pair("aes",     X86_FeatSimd_Aes    ));
  //FeatSimd.push_back(std::make_pair("avx",     X86_FeatSimd_Avx    ));
  //m_CfgMdl.InsertEnum("SIMD feature", FeatSimd, X86_FeatSimd_Avx);

  //m_CfgMdl.InsertBool("undocumented instruction", true);
}
Exemplo n.º 2
0
 Avr8Architecture(void) : Architecture(MEDUSA_ARCH_TAG('a','v','r')) {}