blob: 8fb161574c5b63cdd7510c0aa80a523db9569356 [file] [log] [blame]
Tim Northover3b0846e2014-05-24 12:50:23 +00001//===-- 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;
Tim Northover3b0846e2014-05-24 12:50:23 +000013namespace llvm {
Mehdi Aminif42454b2016-10-09 23:00:34 +000014Target &getTheAArch64leTarget() {
15 static Target TheAArch64leTarget;
16 return TheAArch64leTarget;
17}
18Target &getTheAArch64beTarget() {
19 static Target TheAArch64beTarget;
20 return TheAArch64beTarget;
21}
22Target &getTheARM64Target() {
23 static Target TheARM64Target;
24 return TheARM64Target;
25}
26} // namespace llvm
Tim Northover3b0846e2014-05-24 12:50:23 +000027
28extern "C" void LLVMInitializeAArch64TargetInfo() {
Tim Northovere19bed72014-07-23 12:32:47 +000029 // Now register the "arm64" name for use with "-march". We don't want it to
30 // take possession of the Triple::aarch64 tag though.
Mehdi Aminif42454b2016-10-09 23:00:34 +000031 TargetRegistry::RegisterTarget(getTheARM64Target(), "arm64",
Daniel Sanders725584e2017-11-15 23:55:44 +000032 "ARM64 (little endian)", "AArch64",
Tim Northover0f18ff92014-08-08 08:27:44 +000033 [](Triple::ArchType) { return false; }, true);
Tim Northover3b0846e2014-05-24 12:50:23 +000034
35 RegisterTarget<Triple::aarch64, /*HasJIT=*/true> Z(
Daniel Sanders725584e2017-11-15 23:55:44 +000036 getTheAArch64leTarget(), "aarch64", "AArch64 (little endian)", "AArch64");
Tim Northover3b0846e2014-05-24 12:50:23 +000037 RegisterTarget<Triple::aarch64_be, /*HasJIT=*/true> W(
Daniel Sanders725584e2017-11-15 23:55:44 +000038 getTheAArch64beTarget(), "aarch64_be", "AArch64 (big endian)", "AArch64");
Tim Northover3b0846e2014-05-24 12:50:23 +000039}