1551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===- AArch64TargetMachine.cpp -------------------------------------------===// 2551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// 3551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// The MCLinker Project 4551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// 5551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// This file is distributed under the University of Illinois Open Source 6551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// License. See LICENSE.TXT for details. 7551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// 8551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===----------------------------------------------------------------------===// 9551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#include "AArch64TargetMachine.h" 10551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#include "AArch64.h" 11551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 12551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines#include <mcld/Support/TargetRegistry.h> 13551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 14551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hinesusing namespace mcld; 15551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 16551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen HinesAArch64BaseTargetMachine::AArch64BaseTargetMachine(llvm::TargetMachine& pPM, 17551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines const llvm::Target &pLLVMTarget, 18551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines const mcld::Target &pMCLDTarget, 19551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines const std::string& pTriple) 20551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines : MCLDTargetMachine(pPM, pLLVMTarget, pMCLDTarget, pTriple) { 21551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines} 22551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 23551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===----------------------------------------------------------------------===// 24551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines// Initialize MCLDTargetMachine 25551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines//===----------------------------------------------------------------------===// 26551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hinesextern "C" void MCLDInitializeAArch64LDTarget() { 27551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines // Register createTargetMachine function pointer to mcld::Target 28551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines mcld::RegisterTargetMachine<mcld::AArch64BaseTargetMachine> X(mcld::TheAArch64Target); 29551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines} 30551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 31