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