blob: caa69f8d71b7429390588bf433f9b3ae57050337 [file] [log] [blame]
Daniel Dunbar56e29472009-07-15 06:35:19 +00001//===-- ARMTargetInfo.cpp - ARM 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
Craig Toppera9253262014-03-22 23:51:00 +000010#include "MCTargetDesc/ARMMCTargetDesc.h"
Evan Cheng2bb40352011-08-24 18:08:43 +000011#include "llvm/Support/TargetRegistry.h"
Daniel Dunbar56e29472009-07-15 06:35:19 +000012using namespace llvm;
13
Mehdi Aminif42454b2016-10-09 23:00:34 +000014Target &llvm::getTheARMLETarget() {
15 static Target TheARMLETarget;
16 return TheARMLETarget;
17}
18Target &llvm::getTheARMBETarget() {
19 static Target TheARMBETarget;
20 return TheARMBETarget;
21}
22Target &llvm::getTheThumbLETarget() {
23 static Target TheThumbLETarget;
24 return TheThumbLETarget;
25}
26Target &llvm::getTheThumbBETarget() {
27 static Target TheThumbBETarget;
28 return TheThumbBETarget;
29}
Daniel Dunbar56e29472009-07-15 06:35:19 +000030
Douglas Katzman03dfca02015-05-12 19:42:31 +000031extern "C" void LLVMInitializeARMTargetInfo() {
Mehdi Aminif42454b2016-10-09 23:00:34 +000032 RegisterTarget<Triple::arm, /*HasJIT=*/true> X(getTheARMLETarget(), "arm",
33 "ARM");
34 RegisterTarget<Triple::armeb, /*HasJIT=*/true> Y(getTheARMBETarget(), "armeb",
35 "ARM (big endian)");
Daniel Dunbar56e29472009-07-15 06:35:19 +000036
Mehdi Aminif42454b2016-10-09 23:00:34 +000037 RegisterTarget<Triple::thumb, /*HasJIT=*/true> A(getTheThumbLETarget(),
38 "thumb", "Thumb");
39 RegisterTarget<Triple::thumbeb, /*HasJIT=*/true> B(
40 getTheThumbBETarget(), "thumbeb", "Thumb (big endian)");
Daniel Dunbar56e29472009-07-15 06:35:19 +000041}