xref: /freebsd/contrib/llvm-project/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp (revision fcaf7f8644a9988098ac6be2165bce3ea4786e91)
10b57cec5SDimitry Andric //===-- SparcTargetInfo.cpp - Sparc Target Implementation -----------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #include "TargetInfo/SparcTargetInfo.h"
10349cc55cSDimitry Andric #include "llvm/MC/TargetRegistry.h"
110b57cec5SDimitry Andric using namespace llvm;
120b57cec5SDimitry Andric 
getTheSparcTarget()130b57cec5SDimitry Andric Target &llvm::getTheSparcTarget() {
140b57cec5SDimitry Andric   static Target TheSparcTarget;
150b57cec5SDimitry Andric   return TheSparcTarget;
160b57cec5SDimitry Andric }
getTheSparcV9Target()170b57cec5SDimitry Andric Target &llvm::getTheSparcV9Target() {
180b57cec5SDimitry Andric   static Target TheSparcV9Target;
190b57cec5SDimitry Andric   return TheSparcV9Target;
200b57cec5SDimitry Andric }
getTheSparcelTarget()210b57cec5SDimitry Andric Target &llvm::getTheSparcelTarget() {
220b57cec5SDimitry Andric   static Target TheSparcelTarget;
230b57cec5SDimitry Andric   return TheSparcelTarget;
240b57cec5SDimitry Andric }
250b57cec5SDimitry Andric 
LLVMInitializeSparcTargetInfo()26480093f4SDimitry Andric extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeSparcTargetInfo() {
27*fcaf7f86SDimitry Andric   RegisterTarget<Triple::sparc, /*HasJIT=*/false> X(getTheSparcTarget(),
28*fcaf7f86SDimitry Andric                                                     "sparc", "Sparc", "Sparc");
29*fcaf7f86SDimitry Andric   RegisterTarget<Triple::sparcv9, /*HasJIT=*/false> Y(
300b57cec5SDimitry Andric       getTheSparcV9Target(), "sparcv9", "Sparc V9", "Sparc");
31*fcaf7f86SDimitry Andric   RegisterTarget<Triple::sparcel, /*HasJIT=*/false> Z(
320b57cec5SDimitry Andric       getTheSparcelTarget(), "sparcel", "Sparc LE", "Sparc");
330b57cec5SDimitry Andric }
34