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