15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- MipsTargetMachine.cpp ----------------------------------------------===//
25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//                     The MCLinker Project
45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source
65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details.
75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===//
95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "MipsTargetMachine.h"
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Target/TargetMachine.h"
125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Support/TargetRegistry.h"
135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/MC/MCLDInfo.h"
145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "Mips.h"
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaoextern "C" void LLVMInitializeMipsLDTarget() {
175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // Register createTargetMachine function pointer to mcld::Target
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  mcld::RegisterTargetMachine<mcld::MipsBaseTargetMachine>
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao        X(mcld::TheMipselTarget);
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaomcld::MipsBaseTargetMachine::MipsBaseTargetMachine(llvm::TargetMachine& pPM,
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao                                                   const mcld::Target &pTarget,
245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao                                                   const std::string& pTriple)
255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  : mcld::LLVMTargetMachine(pPM, pTarget, pTriple) {
265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // arg1 - the number of total attributes
275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // arg2 - the most possible number of input files
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  m_pLDInfo = new MCLDInfo(pTriple, 32, 64);
295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaomcld::MipsBaseTargetMachine::~MipsBaseTargetMachine()
325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  delete m_pLDInfo;
345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
35