SparcSubtarget.h revision 4dcfaac2e390fdd0e8a562aeccb666178bd8664c
1f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//=====-- SparcV8Subtarget.h - Define Subtarget for the SPARC -*- C++ -*--====//
2f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//
3a3a2260384a906e1674c7498c2f479e9f37bc503Dmitry Shmidt//                     The LLVM Compiler Infrastructure
4f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//
5f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project// This file was developed by Chris Lattner and is distributed under the
6f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project// University of Illinois Open Source License. See LICENSE.TXT for details.
7f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//
8f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//===----------------------------------------------------------------------===//
9f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//
10f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project// This file declares the SPARC specific subclass of TargetSubtarget.
11f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//
12f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project//===----------------------------------------------------------------------===//
13f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
14f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project#ifndef SPARC_SUBTARGET_H
15f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project#define SPARC_SUBTARGET_H
16f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
17f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project#include "llvm/Target/TargetSubtarget.h"
18f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project#include <string>
19f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
20f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Projectnamespace llvm {
21f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  class Module;
22f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
23f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Projectclass SparcV8Subtarget : public TargetSubtarget {
24f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  bool IsV9;
25f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  bool V8DeprecatedInsts;
26f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  bool IsVIS;
27f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Projectpublic:
28f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  SparcV8Subtarget(const Module &M, const std::string &FS);
29f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
30e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt  bool isV9() const { return IsV9; }
31f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  bool isVIS() const { return IsVIS; }
32f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  bool useDeprecatedV8Instructions() const { return V8DeprecatedInsts; }
33f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project
34e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt  /// ParseSubtargetFeatures - Parses features string setting specified
35f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  /// subtarget options.  Definition of function is auto generated by tblgen.
36f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project  void ParseSubtargetFeatures(const std::string &FS, const std::string &CPU);
37e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt
38e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt};
39e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt
40f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project} // end namespace llvm
41e86eee143ed21592f88a46623a81f71002430459Dmitry Shmidt
42f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project#endif
43f7c5421560640d23fc10803b9d59a9ff1d83e467The Android Open Source Project