//===- MipsMCLinker.cpp ---------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "Mips.h" #include "MipsELFMCLinker.h" #include <llvm/ADT/Triple.h> #include <mcld/Module.h> #include <mcld/Support/TargetRegistry.h> namespace { //===----------------------------------------------------------------------===// /// createMipsMCLinker - the help funtion to create corresponding MipsMCLinker //===----------------------------------------------------------------------===// mcld::MCLinker* createMipsMCLinker(const std::string &pTriple, mcld::LinkerConfig& pConfig, mcld::Module& pModule, mcld::FileHandle& pFileHandle) { llvm::Triple theTriple(pTriple); if (theTriple.isOSDarwin()) { assert(0 && "MachO linker has not supported yet"); return NULL; } if (theTriple.isOSWindows()) { assert(0 && "COFF linker has not supported yet"); return NULL; } return new mcld::MipsELFMCLinker(pConfig, pModule, pFileHandle); } } // namespace of mcld //===----------------------------------------------------------------------===// // MipsMCLinker //===----------------------------------------------------------------------===// extern "C" void MCLDInitializeMipsMCLinker() { mcld::TargetRegistry::RegisterMCLinker(mcld::TheMipselTarget, createMipsMCLinker); mcld::TargetRegistry::RegisterMCLinker(mcld::TheMips64elTarget, createMipsMCLinker); }