]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
MFV r322242: 8373 TXG_WAIT in ZIL commit path
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / Sparc / TargetInfo / SparcTargetInfo.cpp
1 //===-- SparcTargetInfo.cpp - Sparc 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 "Sparc.h"
11 #include "llvm/IR/Module.h"
12 #include "llvm/Support/TargetRegistry.h"
13 using namespace llvm;
14
15 Target &llvm::getTheSparcTarget() {
16   static Target TheSparcTarget;
17   return TheSparcTarget;
18 }
19 Target &llvm::getTheSparcV9Target() {
20   static Target TheSparcV9Target;
21   return TheSparcV9Target;
22 }
23 Target &llvm::getTheSparcelTarget() {
24   static Target TheSparcelTarget;
25   return TheSparcelTarget;
26 }
27
28 extern "C" void LLVMInitializeSparcTargetInfo() {
29   RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(getTheSparcTarget(), "sparc",
30                                                    "Sparc");
31   RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(getTheSparcV9Target(),
32                                                      "sparcv9", "Sparc V9");
33   RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(getTheSparcelTarget(),
34                                                      "sparcel", "Sparc LE");
35 }