1 //===-- MipsTargetInfo.cpp - Mips Target Implementation -------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "Mips.h" 10 #include "llvm/IR/Module.h" 11 #include "llvm/Support/TargetRegistry.h" 12 using namespace llvm; 13 14 Target &llvm::getTheMipsTarget() { 15 static Target TheMipsTarget; 16 return TheMipsTarget; 17 } 18 Target &llvm::getTheMipselTarget() { 19 static Target TheMipselTarget; 20 return TheMipselTarget; 21 } 22 Target &llvm::getTheMips64Target() { 23 static Target TheMips64Target; 24 return TheMips64Target; 25 } 26 Target &llvm::getTheMips64elTarget() { 27 static Target TheMips64elTarget; 28 return TheMips64elTarget; 29 } 30 31 extern "C" void LLVMInitializeMipsTargetInfo() { 32 RegisterTarget<Triple::mips, 33 /*HasJIT=*/true> 34 X(getTheMipsTarget(), "mips", "MIPS (32-bit big endian)", "Mips"); 35 36 RegisterTarget<Triple::mipsel, 37 /*HasJIT=*/true> 38 Y(getTheMipselTarget(), "mipsel", "MIPS (32-bit little endian)", "Mips"); 39 40 RegisterTarget<Triple::mips64, 41 /*HasJIT=*/true> 42 A(getTheMips64Target(), "mips64", "MIPS (64-bit big endian)", "Mips"); 43 44 RegisterTarget<Triple::mips64el, 45 /*HasJIT=*/true> 46 B(getTheMips64elTarget(), "mips64el", "MIPS (64-bit little endian)", 47 "Mips"); 48 } 49