Home | History | Annotate | Download | only in SystemZ
      1 //===- SystemZ.td - Describe the SystemZ Target Machine ------*- 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 // This is the top level entry point for the SystemZ target.
     10 //===----------------------------------------------------------------------===//
     11 
     12 //===----------------------------------------------------------------------===//
     13 // Target-independent interfaces
     14 //===----------------------------------------------------------------------===//
     15 
     16 include "llvm/Target/Target.td"
     17 
     18 //===----------------------------------------------------------------------===//
     19 // Subtarget Features. 
     20 //===----------------------------------------------------------------------===//
     21 def FeatureZ10 : SubtargetFeature<"z10", "HasZ10Insts", "true",
     22                                   "Support Z10 instructions">;
     23 
     24 //===----------------------------------------------------------------------===//
     25 // SystemZ supported processors.
     26 //===----------------------------------------------------------------------===//
     27 class Proc<string Name, list<SubtargetFeature> Features>
     28  : Processor<Name, NoItineraries, Features>;
     29 
     30 def : Proc<"z9",  []>;
     31 def : Proc<"z10", [FeatureZ10]>;
     32 
     33 //===----------------------------------------------------------------------===//
     34 // Register File Description
     35 //===----------------------------------------------------------------------===//
     36 
     37 include "SystemZRegisterInfo.td"
     38 
     39 //===----------------------------------------------------------------------===//
     40 // Calling Convention Description
     41 //===----------------------------------------------------------------------===//
     42 
     43 include "SystemZCallingConv.td"
     44 
     45 //===----------------------------------------------------------------------===//
     46 // Instruction Descriptions
     47 //===----------------------------------------------------------------------===//
     48 
     49 include "SystemZInstrInfo.td"
     50 include "SystemZInstrFP.td"
     51 
     52 def SystemZInstrInfo : InstrInfo {} 
     53 
     54 //===----------------------------------------------------------------------===//
     55 // Target Declaration
     56 //===----------------------------------------------------------------------===//
     57 
     58 def SystemZ : Target {
     59   let InstructionSet = SystemZInstrInfo;
     60 }
     61 
     62