1 //===-- PowerPCTargetInfo.cpp - PowerPC 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 "PPC.h"
11 #include "llvm/IR/Module.h"
12 #include "llvm/Support/TargetRegistry.h"
13 using namespace llvm;
14
getThePPC32Target()15 Target &llvm::getThePPC32Target() {
16 static Target ThePPC32Target;
17 return ThePPC32Target;
18 }
getThePPC64Target()19 Target &llvm::getThePPC64Target() {
20 static Target ThePPC64Target;
21 return ThePPC64Target;
22 }
getThePPC64LETarget()23 Target &llvm::getThePPC64LETarget() {
24 static Target ThePPC64LETarget;
25 return ThePPC64LETarget;
26 }
27
LLVMInitializePowerPCTargetInfo()28 extern "C" void LLVMInitializePowerPCTargetInfo() {
29 RegisterTarget<Triple::ppc, /*HasJIT=*/true> X(getThePPC32Target(), "ppc32",
30 "PowerPC 32", "PPC");
31
32 RegisterTarget<Triple::ppc64, /*HasJIT=*/true> Y(getThePPC64Target(), "ppc64",
33 "PowerPC 64", "PPC");
34
35 RegisterTarget<Triple::ppc64le, /*HasJIT=*/true> Z(
36 getThePPC64LETarget(), "ppc64le", "PowerPC 64 LE", "PPC");
37 }
38