blob: d030bd9f232db85dfc1468f6129d42718bdfe9cf [file] [log] [blame]
Daniel Dunbar56e29472009-07-15 06:35:19 +00001//===-- 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
Daniel Dunbar67038c12009-07-18 23:03:22 +000010#include "Sparc.h"
Chandler Carruth9fb823b2013-01-02 11:36:10 +000011#include "llvm/IR/Module.h"
Evan Cheng2bb40352011-08-24 18:08:43 +000012#include "llvm/Support/TargetRegistry.h"
Daniel Dunbar56e29472009-07-15 06:35:19 +000013using namespace llvm;
14
Mehdi Aminif42454b2016-10-09 23:00:34 +000015Target &llvm::getTheSparcTarget() {
16 static Target TheSparcTarget;
17 return TheSparcTarget;
18}
19Target &llvm::getTheSparcV9Target() {
20 static Target TheSparcV9Target;
21 return TheSparcV9Target;
22}
23Target &llvm::getTheSparcelTarget() {
24 static Target TheSparcelTarget;
25 return TheSparcelTarget;
26}
Daniel Dunbar56e29472009-07-15 06:35:19 +000027
Venkatraman Govindaraju2ea4c282013-10-08 07:15:22 +000028extern "C" void LLVMInitializeSparcTargetInfo() {
Mehdi Aminif42454b2016-10-09 23:00:34 +000029 RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(getTheSparcTarget(), "sparc",
Daniel Sanders725584e2017-11-15 23:55:44 +000030 "Sparc", "Sparc");
31 RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(
32 getTheSparcV9Target(), "sparcv9", "Sparc V9", "Sparc");
33 RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(
34 getTheSparcelTarget(), "sparcel", "Sparc LE", "Sparc");
Daniel Dunbar56e29472009-07-15 06:35:19 +000035}