|  | //===- 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; | 
|  | } | 
|  |  |