blob: 4f075456032d3fa48b5151b740449edd71cc6117 [file] [log] [blame]
Daniel Dunbarc984df82009-07-15 06:35:19 +00001//===-- MipsTargetInfo.cpp - Mips 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 Dunbar4cb1e132009-07-18 23:03:22 +000010#include "Mips.h"
Daniel Dunbarc984df82009-07-15 06:35:19 +000011#include "llvm/Module.h"
12#include "llvm/Target/TargetRegistry.h"
13using namespace llvm;
14
Daniel Dunbar4cb1e132009-07-18 23:03:22 +000015Target llvm::TheMipsTarget;
Daniel Dunbarc984df82009-07-15 06:35:19 +000016
Daniel Dunbarc984df82009-07-15 06:35:19 +000017static unsigned Mips_TripleMatchQuality(const std::string &TT) {
18 // We strongly match "mips*-*".
19 if (TT.size() >= 5 && std::string(TT.begin(), TT.begin()+5) == "mips-")
20 return 20;
21
22 if (TT.size() >= 13 && std::string(TT.begin(),
23 TT.begin()+13) == "mipsallegrex-")
24 return 20;
25
26 return 0;
27}
28
Daniel Dunbar4cb1e132009-07-18 23:03:22 +000029Target llvm::TheMipselTarget;
Daniel Dunbarc984df82009-07-15 06:35:19 +000030
Daniel Dunbarc984df82009-07-15 06:35:19 +000031static unsigned Mipsel_TripleMatchQuality(const std::string &TT) {
32 // We strongly match "mips*el-*".
33 if (TT.size() >= 7 && std::string(TT.begin(), TT.begin()+7) == "mipsel-")
34 return 20;
35
36 if (TT.size() >= 15 && std::string(TT.begin(),
37 TT.begin()+15) == "mipsallegrexel-")
38 return 20;
39
40 if (TT.size() == 3 && std::string(TT.begin(), TT.begin()+3) == "psp")
41 return 20;
42
43 return 0;
44}
45
Daniel Dunbarc984df82009-07-15 06:35:19 +000046extern "C" void LLVMInitializeMipsTargetInfo() {
47 TargetRegistry::RegisterTarget(TheMipsTarget, "mips",
48 "Mips",
Daniel Dunbarfa27ff22009-07-26 02:22:58 +000049 &Mips_TripleMatchQuality);
Daniel Dunbarc984df82009-07-15 06:35:19 +000050
51 TargetRegistry::RegisterTarget(TheMipselTarget, "mipsel",
52 "Mipsel",
Daniel Dunbarfa27ff22009-07-26 02:22:58 +000053 &Mipsel_TripleMatchQuality);
Daniel Dunbarc984df82009-07-15 06:35:19 +000054}