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 14class 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 19def FeatureDistinctOps : SystemZFeature< 20 "distinct-ops", "DistinctOps", 21 "Assume that the distinct-operands facility is installed" 22>; 23 24def FeatureLoadStoreOnCond : SystemZFeature< 25 "load-store-on-cond", "LoadStoreOnCond", 26 "Assume that the load/store-on-condition facility is installed" 27>; 28 29def FeatureHighWord : SystemZFeature< 30 "high-word", "HighWord", 31 "Assume that the high-word facility is installed" 32>; 33 34def FeatureFPExtension : SystemZFeature< 35 "fp-extension", "FPExtension", 36 "Assume that the floating-point extension facility is installed" 37>; 38 39def : Processor<"generic", NoItineraries, []>; 40def : Processor<"z10", NoItineraries, []>; 41def : Processor<"z196", NoItineraries, 42 [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, 43 FeatureFPExtension]>; 44def : Processor<"zEC12", NoItineraries, 45 [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, 46 FeatureFPExtension]>; 47