Home | History | Annotate | Download | only in TargetInfo
      1 //===-- 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 
     10 #include "MCTargetDesc/ARMMCTargetDesc.h"
     11 #include "llvm/Support/TargetRegistry.h"
     12 using namespace llvm;
     13 
     14 Target &llvm::getTheARMLETarget() {
     15   static Target TheARMLETarget;
     16   return TheARMLETarget;
     17 }
     18 Target &llvm::getTheARMBETarget() {
     19   static Target TheARMBETarget;
     20   return TheARMBETarget;
     21 }
     22 Target &llvm::getTheThumbLETarget() {
     23   static Target TheThumbLETarget;
     24   return TheThumbLETarget;
     25 }
     26 Target &llvm::getTheThumbBETarget() {
     27   static Target TheThumbBETarget;
     28   return TheThumbBETarget;
     29 }
     30 
     31 extern "C" void LLVMInitializeARMTargetInfo() {
     32   RegisterTarget<Triple::arm, /*HasJIT=*/true> X(getTheARMLETarget(), "arm",
     33                                                  "ARM", "ARM");
     34   RegisterTarget<Triple::armeb, /*HasJIT=*/true> Y(getTheARMBETarget(), "armeb",
     35                                                    "ARM (big endian)", "ARM");
     36 
     37   RegisterTarget<Triple::thumb, /*HasJIT=*/true> A(getTheThumbLETarget(),
     38                                                    "thumb", "Thumb", "ARM");
     39   RegisterTarget<Triple::thumbeb, /*HasJIT=*/true> B(
     40       getTheThumbBETarget(), "thumbeb", "Thumb (big endian)", "ARM");
     41 }
     42