1 //===-- XCoreTargetInfo.cpp - XCore Target Implementation -----------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "XCore.h" 11 #include "llvm/Module.h" 12 #include "llvm/Target/TargetRegistry.h" 13 using namespace llvm; 14 15 Target llvm::TheXCoreTarget; 16 17 static unsigned XCore_TripleMatchQuality(const std::string &TT) { 18 if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "xcore-") 19 return 20; 20 21 return 0; 22 } 23 24 static unsigned XCore_ModuleMatchQuality(const Module &M) { 25 // Check for a triple match. 26 if (unsigned Q = XCore_TripleMatchQuality(M.getTargetTriple())) 27 return Q; 28 29 // Otherwise we don't match. 30 return 0; 31 } 32 33 extern "C" void LLVMInitializeXCoreTargetInfo() { 34 TargetRegistry::RegisterTarget(TheXCoreTarget, "xcore", 35 "XCore", 36 &XCore_TripleMatchQuality, 37 &XCore_ModuleMatchQuality); 38 } 39