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