Home | History | Annotate | Download | only in SystemZ
      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]>;
     63