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" 12using namespace llvm; 13 14namespace llvm { 15Target TheAArch64leTarget; 16Target TheAArch64beTarget; 17Target TheARM64Target; 18} // end namespace llvm 19 20extern "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