1 //===-- AArch64TargetInfo.cpp - AArch64 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 "llvm/ADT/Triple.h" 11 #include "llvm/Support/TargetRegistry.h" 12 using namespace llvm; 13 14 namespace llvm { 15 Target TheAArch64leTarget; 16 Target TheAArch64beTarget; 17 Target TheARM64Target; 18 } // end namespace llvm 19 20 extern "C" void LLVMInitializeAArch64TargetInfo() { 21 // Now register the "arm64" name for use with "-march". We don't want it to 22 // take possession of the Triple::aarch64 tag though. 23 TargetRegistry::RegisterTarget(TheARM64Target, "arm64", 24 "ARM64 (little endian)", 25 [](Triple::ArchType) { return false; }, true); 26 27 RegisterTarget<Triple::aarch64, /*HasJIT=*/true> Z( 28 TheAArch64leTarget, "aarch64", "AArch64 (little endian)"); 29 RegisterTarget<Triple::aarch64_be, /*HasJIT=*/true> W( 30 TheAArch64beTarget, "aarch64_be", "AArch64 (big endian)"); 31 32 } 33