1259698Sdim//===-- SystemZ.td - SystemZ processors and features ---------*- tblgen -*-===//
2259698Sdim//
3259698Sdim//                     The LLVM Compiler Infrastructure
4259698Sdim//
5259698Sdim// This file is distributed under the University of Illinois Open Source
6259698Sdim// License. See LICENSE.TXT for details.
7259698Sdim//
8259698Sdim//===----------------------------------------------------------------------===//
9259698Sdim//
10259698Sdim// Processor and feature definitions.
11259698Sdim//
12259698Sdim//===----------------------------------------------------------------------===//
13259698Sdim
14259698Sdimclass SystemZFeature<string extname, string intname, string desc>
15259698Sdim  : Predicate<"Subtarget.has"##intname##"()">,
16259698Sdim    AssemblerPredicate<"Feature"##intname, extname>,
17259698Sdim    SubtargetFeature<extname, "Has"##intname, "true", desc>;
18259698Sdim
19259698Sdimdef FeatureDistinctOps : SystemZFeature<
20259698Sdim  "distinct-ops", "DistinctOps",
21259698Sdim  "Assume that the distinct-operands facility is installed"
22259698Sdim>;
23259698Sdim
24259698Sdimdef FeatureLoadStoreOnCond : SystemZFeature<
25259698Sdim  "load-store-on-cond", "LoadStoreOnCond",
26259698Sdim  "Assume that the load/store-on-condition facility is installed"
27259698Sdim>;
28259698Sdim
29259698Sdimdef FeatureHighWord : SystemZFeature<
30259698Sdim  "high-word", "HighWord",
31259698Sdim  "Assume that the high-word facility is installed"
32259698Sdim>;
33259698Sdim
34259698Sdimdef FeatureFPExtension : SystemZFeature<
35259698Sdim  "fp-extension", "FPExtension",
36259698Sdim  "Assume that the floating-point extension facility is installed"
37259698Sdim>;
38259698Sdim
39259698Sdimdef : Processor<"generic", NoItineraries, []>;
40259698Sdimdef : Processor<"z10", NoItineraries, []>;
41259698Sdimdef : Processor<"z196", NoItineraries,
42259698Sdim                [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord,
43259698Sdim                 FeatureFPExtension]>;
44259698Sdimdef : Processor<"zEC12", NoItineraries,
45259698Sdim                [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord,
46259698Sdim                 FeatureFPExtension]>;
47