SystemZTargetInfo.cpp revision 4cb1e13769856716261a4d315f8202bd918502c3
1//===-- SystemZTargetInfo.cpp - SystemZ 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 10#include "SystemZ.h" 11#include "llvm/Module.h" 12#include "llvm/Target/TargetRegistry.h" 13using namespace llvm; 14 15Target llvm::TheSystemZTarget; 16 17static unsigned SystemZ_JITMatchQuality() { 18 return 0; 19} 20 21static unsigned SystemZ_TripleMatchQuality(const std::string &TT) { 22 // We strongly match s390x 23 if (TT.size() >= 5 && TT[0] == 's' && TT[1] == '3' && TT[2] == '9' && 24 TT[3] == '0' && TT[4] == 'x') 25 return 20; 26 27 return 0; 28} 29 30static unsigned SystemZ_ModuleMatchQuality(const Module &M) { 31 // Check for a triple match. 32 if (unsigned Q = SystemZ_TripleMatchQuality(M.getTargetTriple())) 33 return Q; 34 35 // Otherwise we don't match. 36 return 0; 37} 38 39extern "C" void LLVMInitializeSystemZTargetInfo() { 40 TargetRegistry::RegisterTarget(TheSystemZTarget, "systemz", 41 "SystemZ", 42 &SystemZ_TripleMatchQuality, 43 &SystemZ_ModuleMatchQuality, 44 &SystemZ_JITMatchQuality); 45} 46