]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
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 | class SystemZMissingFeature<string intname> | |
20 | : Predicate<"!Subtarget.has"##intname##"()">; | |
21 | ||
22 | def FeatureDistinctOps : SystemZFeature< | |
23 | "distinct-ops", "DistinctOps", | |
24 | "Assume that the distinct-operands facility is installed" | |
25 | >; | |
26 | ||
27 | def FeatureLoadStoreOnCond : SystemZFeature< | |
28 | "load-store-on-cond", "LoadStoreOnCond", | |
29 | "Assume that the load/store-on-condition facility is installed" | |
30 | >; | |
31 | ||
32 | def FeatureHighWord : SystemZFeature< | |
33 | "high-word", "HighWord", | |
34 | "Assume that the high-word facility is installed" | |
35 | >; | |
36 | ||
37 | def FeatureFPExtension : SystemZFeature< | |
38 | "fp-extension", "FPExtension", | |
39 | "Assume that the floating-point extension facility is installed" | |
40 | >; | |
41 | ||
42 | def FeatureFastSerialization : SystemZFeature< | |
43 | "fast-serialization", "FastSerialization", | |
44 | "Assume that the fast-serialization facility is installed" | |
45 | >; | |
46 | ||
47 | def FeatureInterlockedAccess1 : SystemZFeature< | |
48 | "interlocked-access1", "InterlockedAccess1", | |
49 | "Assume that interlocked-access facility 1 is installed" | |
50 | >; | |
51 | def FeatureNoInterlockedAccess1 : SystemZMissingFeature<"InterlockedAccess1">; | |
52 | ||
53 | def : Processor<"generic", NoItineraries, []>; | |
54 | def : Processor<"z10", NoItineraries, []>; | |
55 | def : Processor<"z196", NoItineraries, | |
56 | [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, | |
57 | FeatureFPExtension, FeatureFastSerialization, | |
58 | FeatureInterlockedAccess1]>; | |
59 | def : Processor<"zEC12", NoItineraries, | |
60 | [FeatureDistinctOps, FeatureLoadStoreOnCond, FeatureHighWord, | |
61 | FeatureFPExtension, FeatureFastSerialization, | |
62 | FeatureInterlockedAccess1]>; |