| //===- TargetRegistry.cpp -------------------------------------------------===// |
| // |
| // The MCLinker Project |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| #include "mcld/Support/TargetRegistry.h" |
| |
| |
| mcld::TargetRegistry::TargetListTy mcld::TargetRegistry::s_TargetList; |
| |
| /* ** */ |
| |
| void mcld::TargetRegistry::RegisterTarget(mcld::Target &T) |
| { |
| s_TargetList.push_back(&T); |
| } |
| |
| const mcld::Target* mcld::TargetRegistry::lookupTarget(const llvm::Target &pTarget) |
| { |
| mcld::Target *result = 0; |
| TargetListTy::const_iterator TIter, TEnd = s_TargetList.end(); |
| for (TIter=s_TargetList.begin(); TIter!=TEnd; ++TIter) { |
| if ((*TIter)->get()==&pTarget) { |
| result = (*TIter); |
| break; |
| } |
| } |
| return result; |
| } |
| |
| const mcld::Target *mcld::TargetRegistry::lookupTarget(const std::string &pTriple, |
| std::string &pError) |
| { |
| const llvm::Target* target = llvm::TargetRegistry::lookupTarget( pTriple, pError ); |
| if (!target) |
| return 0; |
| return lookupTarget( *target ); |
| } |
| |