LLVM API Documentation
00001 //===-- AArch64TargetInfo.cpp - AArch64 Target Implementation -----------------===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #include "llvm/ADT/Triple.h" 00011 #include "llvm/Support/TargetRegistry.h" 00012 using namespace llvm; 00013 00014 namespace llvm { 00015 Target TheAArch64leTarget; 00016 Target TheAArch64beTarget; 00017 Target TheARM64Target; 00018 } // end namespace llvm 00019 00020 extern "C" void LLVMInitializeAArch64TargetInfo() { 00021 // Now register the "arm64" name for use with "-march". We don't want it to 00022 // take possession of the Triple::aarch64 tag though. 00023 TargetRegistry::RegisterTarget(TheARM64Target, "arm64", 00024 "ARM64 (little endian)", 00025 [](Triple::ArchType) { return false; }, true); 00026 00027 RegisterTarget<Triple::aarch64, /*HasJIT=*/true> Z( 00028 TheAArch64leTarget, "aarch64", "AArch64 (little endian)"); 00029 RegisterTarget<Triple::aarch64_be, /*HasJIT=*/true> W( 00030 TheAArch64beTarget, "aarch64_be", "AArch64 (big endian)"); 00031 00032 }