1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ 2|* *| 3|* Subtarget Enumeration Source Fragment *| 4|* *| 5|* Automatically generated file, do not edit! *| 6|* *| 7\*===----------------------------------------------------------------------===*/ 8 9 10#ifdef GET_SUBTARGETINFO_ENUM 11#undef GET_SUBTARGETINFO_ENUM 12namespace llvm { 13namespace SystemZ { 14enum : uint64_t { 15 FeatureDistinctOps = 0, 16 FeatureFPExtension = 1, 17 FeatureFastSerialization = 2, 18 FeatureHighWord = 3, 19 FeatureInterlockedAccess1 = 4, 20 FeatureLoadStoreOnCond = 5, 21 FeatureMiscellaneousExtensions = 6, 22 FeaturePopulationCount = 7, 23 FeatureProcessorAssist = 8, 24 FeatureTransactionalExecution = 9, 25 FeatureVector = 10 26}; 27} 28} // end llvm namespace 29#endif // GET_SUBTARGETINFO_ENUM 30 31 32#ifdef GET_SUBTARGETINFO_MC_DESC 33#undef GET_SUBTARGETINFO_MC_DESC 34namespace llvm { 35// Sorted (by key) array of values for CPU features. 36extern const llvm::SubtargetFeatureKV SystemZFeatureKV[] = { 37 { "distinct-ops", "Assume that the distinct-operands facility is installed", { SystemZ::FeatureDistinctOps }, { } }, 38 { "fast-serialization", "Assume that the fast-serialization facility is installed", { SystemZ::FeatureFastSerialization }, { } }, 39 { "fp-extension", "Assume that the floating-point extension facility is installed", { SystemZ::FeatureFPExtension }, { } }, 40 { "high-word", "Assume that the high-word facility is installed", { SystemZ::FeatureHighWord }, { } }, 41 { "interlocked-access1", "Assume that interlocked-access facility 1 is installed", { SystemZ::FeatureInterlockedAccess1 }, { } }, 42 { "load-store-on-cond", "Assume that the load/store-on-condition facility is installed", { SystemZ::FeatureLoadStoreOnCond }, { } }, 43 { "miscellaneous-extensions", "Assume that the miscellaneous-extensions facility is installed", { SystemZ::FeatureMiscellaneousExtensions }, { } }, 44 { "population-count", "Assume that the population-count facility is installed", { SystemZ::FeaturePopulationCount }, { } }, 45 { "processor-assist", "Assume that the processor-assist facility is installed", { SystemZ::FeatureProcessorAssist }, { } }, 46 { "transactional-execution", "Assume that the transactional-execution facility is installed", { SystemZ::FeatureTransactionalExecution }, { } }, 47 { "vector", "Assume that the vectory facility is installed", { SystemZ::FeatureVector }, { } } 48}; 49 50// Sorted (by key) array of values for CPU subtype. 51extern const llvm::SubtargetFeatureKV SystemZSubTypeKV[] = { 52 { "generic", "Select the generic processor", { }, { } }, 53 { "z10", "Select the z10 processor", { }, { } }, 54 { "z13", "Select the z13 processor", { SystemZ::FeatureDistinctOps, SystemZ::FeatureLoadStoreOnCond, SystemZ::FeatureHighWord, SystemZ::FeatureFPExtension, SystemZ::FeaturePopulationCount, SystemZ::FeatureFastSerialization, SystemZ::FeatureInterlockedAccess1, SystemZ::FeatureTransactionalExecution, SystemZ::FeatureProcessorAssist, SystemZ::FeatureVector }, { } }, 55 { "z196", "Select the z196 processor", { SystemZ::FeatureDistinctOps, SystemZ::FeatureLoadStoreOnCond, SystemZ::FeatureHighWord, SystemZ::FeatureFPExtension, SystemZ::FeaturePopulationCount, SystemZ::FeatureFastSerialization, SystemZ::FeatureInterlockedAccess1 }, { } }, 56 { "zEC12", "Select the zEC12 processor", { SystemZ::FeatureDistinctOps, SystemZ::FeatureLoadStoreOnCond, SystemZ::FeatureHighWord, SystemZ::FeatureFPExtension, SystemZ::FeaturePopulationCount, SystemZ::FeatureFastSerialization, SystemZ::FeatureInterlockedAccess1, SystemZ::FeatureMiscellaneousExtensions, SystemZ::FeatureTransactionalExecution, SystemZ::FeatureProcessorAssist }, { } } 57}; 58 59#ifdef DBGFIELD 60#error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro" 61#endif 62#ifndef NDEBUG 63#define DBGFIELD(x) x, 64#else 65#define DBGFIELD(x) 66#endif 67 68// =============================================================== 69// Data tables for the new per-operand machine model. 70#undef DBGFIELD 71static inline MCSubtargetInfo *createSystemZMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef FS) { 72 return new MCSubtargetInfo(TT, CPU, FS, SystemZFeatureKV, SystemZSubTypeKV, NULL); 73} 74 75} // end llvm namespace 76#endif // GET_SUBTARGETINFO_MC_DESC 77 78 79#ifdef GET_SUBTARGETINFO_TARGET_DESC 80#undef GET_SUBTARGETINFO_TARGET_DESC 81#include "llvm/Support/Debug.h" 82#include "llvm/Support/raw_ostream.h" 83// ParseSubtargetFeatures - Parses features string setting specified 84// subtarget options. 85void llvm::SystemZSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef FS) { 86 DEBUG(dbgs() << "\nFeatures:" << FS); 87 DEBUG(dbgs() << "\nCPU:" << CPU << "\n\n"); 88 InitMCProcessorInfo(CPU, FS); 89 const FeatureBitset& Bits = getFeatureBits(); 90 if (Bits[SystemZ::FeatureDistinctOps]) HasDistinctOps = true; 91 if (Bits[SystemZ::FeatureFPExtension]) HasFPExtension = true; 92 if (Bits[SystemZ::FeatureFastSerialization]) HasFastSerialization = true; 93 if (Bits[SystemZ::FeatureHighWord]) HasHighWord = true; 94 if (Bits[SystemZ::FeatureInterlockedAccess1]) HasInterlockedAccess1 = true; 95 if (Bits[SystemZ::FeatureLoadStoreOnCond]) HasLoadStoreOnCond = true; 96 if (Bits[SystemZ::FeatureMiscellaneousExtensions]) HasMiscellaneousExtensions = true; 97 if (Bits[SystemZ::FeaturePopulationCount]) HasPopulationCount = true; 98 if (Bits[SystemZ::FeatureProcessorAssist]) HasProcessorAssist = true; 99 if (Bits[SystemZ::FeatureTransactionalExecution]) HasTransactionalExecution = true; 100 if (Bits[SystemZ::FeatureVector]) HasVector = true; 101} 102#endif // GET_SUBTARGETINFO_TARGET_DESC 103