1 //===-- SystemZ.td - SystemZ processors and features ---------*- tblgen -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // Processor and feature definitions. 11 // 12 //===----------------------------------------------------------------------===// 13 14 class SystemZFeature<string extname, string intname, string desc> 15 : Predicate<"Subtarget.has"##intname##"()">, 16 AssemblerPredicate<"Feature"##intname, extname>, 17 SubtargetFeature<extname, "Has"##intname, "true", desc>; 18 19 def FeatureDistinctOps : SystemZFeature< 20 "distinct-ops", "DistinctOps", 21 "Assume that the distinct-operands facility is installed" 22 >; 23 24 def FeatureLoadStoreOnCond : SystemZFeature< 25 "load-store-on-cond", "LoadStoreOnCond", 26 "Assume that the load/store-on-condition facility is installed" 27 >; 28 29 def FeatureHighWord : SystemZFeature< 30 "high-word", "HighWord", 31 "Assume that the high-word facility is installed" 32 >; 33 34 def : Processor<"z10", NoItineraries, []>; 35 def : Processor<"z196", NoItineraries, 36 [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord]>; 37 def : Processor<"zEC12", NoItineraries, 38 [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord]>; 39