1*9880d681SAndroid Build Coastguard Worker//===-- SystemZ.td - SystemZ processors and features ---------*- tblgen -*-===// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker// 10*9880d681SAndroid Build Coastguard Worker// Processor and feature definitions. 11*9880d681SAndroid Build Coastguard Worker// 12*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerclass SystemZFeature<string extname, string intname, string desc> 15*9880d681SAndroid Build Coastguard Worker : Predicate<"Subtarget->has"##intname##"()">, 16*9880d681SAndroid Build Coastguard Worker AssemblerPredicate<"Feature"##intname, extname>, 17*9880d681SAndroid Build Coastguard Worker SubtargetFeature<extname, "Has"##intname, "true", desc>; 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerclass SystemZMissingFeature<string intname> 20*9880d681SAndroid Build Coastguard Worker : Predicate<"!Subtarget->has"##intname##"()">; 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdef FeatureDistinctOps : SystemZFeature< 23*9880d681SAndroid Build Coastguard Worker "distinct-ops", "DistinctOps", 24*9880d681SAndroid Build Coastguard Worker "Assume that the distinct-operands facility is installed" 25*9880d681SAndroid Build Coastguard Worker>; 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdef FeatureLoadStoreOnCond : SystemZFeature< 28*9880d681SAndroid Build Coastguard Worker "load-store-on-cond", "LoadStoreOnCond", 29*9880d681SAndroid Build Coastguard Worker "Assume that the load/store-on-condition facility is installed" 30*9880d681SAndroid Build Coastguard Worker>; 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerdef FeatureLoadStoreOnCond2 : SystemZFeature< 33*9880d681SAndroid Build Coastguard Worker "load-store-on-cond-2", "LoadStoreOnCond2", 34*9880d681SAndroid Build Coastguard Worker "Assume that the load/store-on-condition facility 2 is installed" 35*9880d681SAndroid Build Coastguard Worker>; 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdef FeatureHighWord : SystemZFeature< 38*9880d681SAndroid Build Coastguard Worker "high-word", "HighWord", 39*9880d681SAndroid Build Coastguard Worker "Assume that the high-word facility is installed" 40*9880d681SAndroid Build Coastguard Worker>; 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerdef FeatureFPExtension : SystemZFeature< 43*9880d681SAndroid Build Coastguard Worker "fp-extension", "FPExtension", 44*9880d681SAndroid Build Coastguard Worker "Assume that the floating-point extension facility is installed" 45*9880d681SAndroid Build Coastguard Worker>; 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdef FeaturePopulationCount : SystemZFeature< 48*9880d681SAndroid Build Coastguard Worker "population-count", "PopulationCount", 49*9880d681SAndroid Build Coastguard Worker "Assume that the population-count facility is installed" 50*9880d681SAndroid Build Coastguard Worker>; 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workerdef FeatureFastSerialization : SystemZFeature< 53*9880d681SAndroid Build Coastguard Worker "fast-serialization", "FastSerialization", 54*9880d681SAndroid Build Coastguard Worker "Assume that the fast-serialization facility is installed" 55*9880d681SAndroid Build Coastguard Worker>; 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdef FeatureInterlockedAccess1 : SystemZFeature< 58*9880d681SAndroid Build Coastguard Worker "interlocked-access1", "InterlockedAccess1", 59*9880d681SAndroid Build Coastguard Worker "Assume that interlocked-access facility 1 is installed" 60*9880d681SAndroid Build Coastguard Worker>; 61*9880d681SAndroid Build Coastguard Workerdef FeatureNoInterlockedAccess1 : SystemZMissingFeature<"InterlockedAccess1">; 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Workerdef FeatureMiscellaneousExtensions : SystemZFeature< 64*9880d681SAndroid Build Coastguard Worker "miscellaneous-extensions", "MiscellaneousExtensions", 65*9880d681SAndroid Build Coastguard Worker "Assume that the miscellaneous-extensions facility is installed" 66*9880d681SAndroid Build Coastguard Worker>; 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workerdef FeatureTransactionalExecution : SystemZFeature< 69*9880d681SAndroid Build Coastguard Worker "transactional-execution", "TransactionalExecution", 70*9880d681SAndroid Build Coastguard Worker "Assume that the transactional-execution facility is installed" 71*9880d681SAndroid Build Coastguard Worker>; 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Workerdef FeatureProcessorAssist : SystemZFeature< 74*9880d681SAndroid Build Coastguard Worker "processor-assist", "ProcessorAssist", 75*9880d681SAndroid Build Coastguard Worker "Assume that the processor-assist facility is installed" 76*9880d681SAndroid Build Coastguard Worker>; 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerdef FeatureVector : SystemZFeature< 79*9880d681SAndroid Build Coastguard Worker "vector", "Vector", 80*9880d681SAndroid Build Coastguard Worker "Assume that the vectory facility is installed" 81*9880d681SAndroid Build Coastguard Worker>; 82*9880d681SAndroid Build Coastguard Workerdef FeatureNoVector : SystemZMissingFeature<"Vector">; 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdef : Processor<"generic", NoItineraries, []>; 85*9880d681SAndroid Build Coastguard Workerdef : Processor<"z10", NoItineraries, []>; 86*9880d681SAndroid Build Coastguard Workerdef : Processor<"z196", NoItineraries, 87*9880d681SAndroid Build Coastguard Worker [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, 88*9880d681SAndroid Build Coastguard Worker FeatureFPExtension, FeaturePopulationCount, 89*9880d681SAndroid Build Coastguard Worker FeatureFastSerialization, FeatureInterlockedAccess1]>; 90*9880d681SAndroid Build Coastguard Workerdef : Processor<"zEC12", NoItineraries, 91*9880d681SAndroid Build Coastguard Worker [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, 92*9880d681SAndroid Build Coastguard Worker FeatureFPExtension, FeaturePopulationCount, 93*9880d681SAndroid Build Coastguard Worker FeatureFastSerialization, FeatureInterlockedAccess1, 94*9880d681SAndroid Build Coastguard Worker FeatureMiscellaneousExtensions, 95*9880d681SAndroid Build Coastguard Worker FeatureTransactionalExecution, FeatureProcessorAssist]>; 96*9880d681SAndroid Build Coastguard Workerdef : Processor<"z13", NoItineraries, 97*9880d681SAndroid Build Coastguard Worker [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, 98*9880d681SAndroid Build Coastguard Worker FeatureFPExtension, FeaturePopulationCount, 99*9880d681SAndroid Build Coastguard Worker FeatureFastSerialization, FeatureInterlockedAccess1, 100*9880d681SAndroid Build Coastguard Worker FeatureMiscellaneousExtensions, 101*9880d681SAndroid Build Coastguard Worker FeatureTransactionalExecution, FeatureProcessorAssist, 102*9880d681SAndroid Build Coastguard Worker FeatureVector, FeatureLoadStoreOnCond2]>; 103