//===- SystemZ.td - Describe the SystemZ Target Machine ------*- tblgen -*-==// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // This is the top level entry point for the SystemZ target. //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Target-independent interfaces //===----------------------------------------------------------------------===// include "llvm/Target/Target.td" //===----------------------------------------------------------------------===// // Subtarget Features. //===----------------------------------------------------------------------===// def FeatureZ10 : SubtargetFeature<"z10", "HasZ10Insts", "true", "Support Z10 instructions">; //===----------------------------------------------------------------------===// // SystemZ supported processors. //===----------------------------------------------------------------------===// class Proc<string Name, list<SubtargetFeature> Features> : Processor<Name, NoItineraries, Features>; def : Proc<"z9", []>; def : Proc<"z10", [FeatureZ10]>; //===----------------------------------------------------------------------===// // Register File Description //===----------------------------------------------------------------------===// include "SystemZRegisterInfo.td" //===----------------------------------------------------------------------===// // Calling Convention Description //===----------------------------------------------------------------------===// include "SystemZCallingConv.td" //===----------------------------------------------------------------------===// // Instruction Descriptions //===----------------------------------------------------------------------===// include "SystemZInstrInfo.td" include "SystemZInstrFP.td" def SystemZInstrInfo : InstrInfo {} //===----------------------------------------------------------------------===// // Target Declaration //===----------------------------------------------------------------------===// def SystemZ : Target { let InstructionSet = SystemZInstrInfo; }