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