//===- TableGen'erated file -------------------------------------*- C++ -*-===//
//
// Subtarget Enumeration Source Fragment
//
// Automatically generated file, do not edit!
//
//===----------------------------------------------------------------------===//


#ifdef GET_SUBTARGETINFO_ENUM
#undef GET_SUBTARGETINFO_ENUM
namespace llvm {
namespace Codasip {
enum {
  CodasipFeature =  1ULL << 0
};
}
} // End llvm namespace 
#endif // GET_SUBTARGETINFO_ENUM


#ifdef GET_SUBTARGETINFO_MC_DESC
#undef GET_SUBTARGETINFO_MC_DESC
namespace llvm {
// Sorted (by key) array of values for CPU features.
llvm::SubtargetFeatureKV CodasipFeatureKV[] = {
  { "codasip", "This is a Codasip target.", Codasip::CodasipFeature, 0ULL }
};

// Sorted (by key) array of values for CPU subtype.
llvm::SubtargetFeatureKV CodasipSubTypeKV[] = {
  { "codasip", "Select the codasip processor", Codasip::CodasipFeature, 0ULL }
};


// Functional units for itineraries "CodasipItineraries"
namespace CodasipItinerariesFU {
  const unsigned FU1 = 1 << 0;
}

llvm::InstrStage CodasipStages[] = {
  { 0, 0, 0, llvm::InstrStage::Required }, // No itinerary
  { 1, CodasipItinerariesFU::FU1, -1, (llvm::InstrStage::ReservationKinds)0 }, // 1
  { 0, 0, 0, llvm::InstrStage::Required } // End itinerary
};
unsigned CodasipOperandCycles[] = {
  0, // No itinerary
  0 // End itinerary
};
unsigned CodasipForwardingPathes[] = {
  0, // No itinerary
  0 // End itinerary
};

llvm::InstrItinerary CodasipItineraries[] = {
  { 1, 1, 2, 0, 0 }, // 0 Itin1
  { 1, 0, 0, 0, 0 }, // 1 NoItinerary
  { 1, ~0U, ~0U, ~0U, ~0U } // end marker
};

// Sorted (by key) array of itineraries for CPU subtype.
llvm::SubtargetInfoKV CodasipProcItinKV[] = {
  { "codasip", (void *)&CodasipItineraries }
};

static inline void InitCodasipMCSubtargetInfo(MCSubtargetInfo *II, StringRef TT, StringRef CPU, StringRef FS) {
  II->InitMCSubtargetInfo(TT, CPU, FS, CodasipFeatureKV, CodasipSubTypeKV, CodasipProcItinKV, CodasipStages, CodasipOperandCycles, CodasipForwardingPathes, 1, 1);
}

} // End llvm namespace 
#endif // GET_SUBTARGETINFO_MC_DESC


#ifdef GET_SUBTARGETINFO_TARGET_DESC
#undef GET_SUBTARGETINFO_TARGET_DESC
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
// ParseSubtargetFeatures - Parses features string setting specified
// subtarget options.
void llvm::CodasipSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef FS) {
  DEBUG(dbgs() << "\nFeatures:" << FS);
  DEBUG(dbgs() << "\nCPU:" << CPU);
  uint64_t Bits = ReInitMCSubtargetInfo(CPU, FS);
  if ((Bits & Codasip::CodasipFeature) != 0) codasip = true;
}
#endif // GET_SUBTARGETINFO_TARGET_DESC


#ifdef GET_SUBTARGETINFO_HEADER
#undef GET_SUBTARGETINFO_HEADER
namespace llvm {
struct CodasipGenSubtargetInfo : public TargetSubtargetInfo {
  explicit CodasipGenSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS);
};
} // End llvm namespace 
#endif // GET_SUBTARGETINFO_HEADER


#ifdef GET_SUBTARGETINFO_CTOR
#undef GET_SUBTARGETINFO_CTOR
namespace llvm {
extern llvm::SubtargetFeatureKV CodasipFeatureKV[];
extern llvm::SubtargetFeatureKV CodasipSubTypeKV[];
extern llvm::SubtargetInfoKV CodasipProcItinKV[];
extern llvm::InstrStage CodasipStages[];
extern unsigned CodasipOperandCycles[];
extern unsigned CodasipForwardingPathes[];
CodasipGenSubtargetInfo::CodasipGenSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS)
  : TargetSubtargetInfo() {
  InitMCSubtargetInfo(TT, CPU, FS, CodasipFeatureKV, CodasipSubTypeKV, CodasipProcItinKV, CodasipStages, CodasipOperandCycles, CodasipForwardingPathes, 1, 1);
}

} // End llvm namespace 
#endif // GET_SUBTARGETINFO_CTOR

