SparcSubtarget.cpp revision 87c06d617917f4a388fbe9db81198e13cde3e431
15b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov//===- SparcSubtarget.cpp - SPARC Subtarget Information -------------------===// 25b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// 35b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// The LLVM Compiler Infrastructure 45b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// 55b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// This file is distributed under the University of Illinois Open Source 65b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// License. See LICENSE.TXT for details. 75b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// 85b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov//===----------------------------------------------------------------------===// 95b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// 105b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// This file implements the SPARC specific subclass of TargetSubtarget. 115b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov// 125b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov//===----------------------------------------------------------------------===// 135b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov 145b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov#include "SparcSubtarget.h" 155b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov#include "SparcGenSubtarget.inc" 165b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonovusing namespace llvm; 175b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov 185b29018cf422e7711fb760b733c32127397a43fcAlexey SamsonovSparcSubtarget::SparcSubtarget(const std::string &TT, const std::string &FS, 195b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov bool is64Bit) : 205b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov IsV9(false), 215b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov V8DeprecatedInsts(false), 225b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov IsVIS(false), 235b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov Is64Bit(is64Bit) { 245b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov 255b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov // Determine default and user specified characteristics 265b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov const char *CPU = "v8"; 275b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov if (is64Bit) { 285b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov CPU = "v9"; 295b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov IsV9 = true; 305b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov } 315b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov 325b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov // Parse features string. 335b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov ParseSubtargetFeatures(FS, CPU); 345b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov} 355b29018cf422e7711fb760b733c32127397a43fcAlexey Samsonov