LLVM API Documentation

AArch64TargetInfo.cpp
Go to the documentation of this file.
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 }