blob: 4c1edfaaaeca987f76e56ce098ec182d1a391f71 [file] [log] [blame]
Jia Liu9f610112012-02-17 08:55:11 +00001//===-- MipsTargetInfo.cpp - Mips Target Implementation -------------------===//
Daniel Dunbar56e29472009-07-15 06:35:19 +00002//
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//
Akira Hatanakae2489122011-04-15 21:51:11 +00008//===----------------------------------------------------------------------===//
Daniel Dunbar56e29472009-07-15 06:35:19 +00009
Daniel Dunbar67038c12009-07-18 23:03:22 +000010#include "Mips.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::getTheMipsTarget() {
16 static Target TheMipsTarget;
17 return TheMipsTarget;
18}
19Target &llvm::getTheMipselTarget() {
20 static Target TheMipselTarget;
21 return TheMipselTarget;
22}
23Target &llvm::getTheMips64Target() {
24 static Target TheMips64Target;
25 return TheMips64Target;
26}
27Target &llvm::getTheMips64elTarget() {
28 static Target TheMips64elTarget;
29 return TheMips64elTarget;
30}
Daniel Dunbar56e29472009-07-15 06:35:19 +000031
Bruno Cardoso Lopesed874ef2011-03-04 17:51:39 +000032extern "C" void LLVMInitializeMipsTargetInfo() {
Bruno Cardoso Lopesd1d9c782011-07-21 16:28:51 +000033 RegisterTarget<Triple::mips,
Mehdi Aminif42454b2016-10-09 23:00:34 +000034 /*HasJIT=*/true>
35 X(getTheMipsTarget(), "mips", "Mips");
Daniel Dunbar56e29472009-07-15 06:35:19 +000036
Bruno Cardoso Lopesd1d9c782011-07-21 16:28:51 +000037 RegisterTarget<Triple::mipsel,
Mehdi Aminif42454b2016-10-09 23:00:34 +000038 /*HasJIT=*/true>
39 Y(getTheMipselTarget(), "mipsel", "Mipsel");
Akira Hatanaka3d673cc2011-09-21 03:00:58 +000040
41 RegisterTarget<Triple::mips64,
Mehdi Aminif42454b2016-10-09 23:00:34 +000042 /*HasJIT=*/true>
43 A(getTheMips64Target(), "mips64", "Mips64 [experimental]");
Akira Hatanaka3d673cc2011-09-21 03:00:58 +000044
45 RegisterTarget<Triple::mips64el,
Mehdi Aminif42454b2016-10-09 23:00:34 +000046 /*HasJIT=*/true>
47 B(getTheMips64elTarget(), "mips64el", "Mips64el [experimental]");
Daniel Dunbar56e29472009-07-15 06:35:19 +000048}